SQL Server 2008でSELECTクエリ結果からテーブルを作成する方法
SQL Server 2008でSELECTクエリ結果からテーブルを作成する方法
このチュートリアルでは、SQL Server 2008でSELECTクエリ結果から新しいテーブルを作成する方法を、2つの異なる方法で説明します。
方法1:INSERT INTO
この方法は、単純で直接的な方法です。まず、新しいテーブルを作成するためのCREATE TABLE
クエリを実行します。次に、INSERT INTO
クエリを使用して、SELECTクエリの結果を新しいテーブルに挿入します。
例
-- 新しいテーブルを作成する
CREATE TABLE dbo.NewTable (
Column1 int,
Column2 varchar(50)
);
-- SELECTクエリの結果を挿入する
INSERT INTO dbo.NewTable
SELECT Column1, Column2
FROM dbo.OldTable;
この方法は、1つのステップで新しいテーブルを作成し、SELECTクエリの結果を挿入することができます。
SELECT Column1, Column2
INTO dbo.NewTable
FROM dbo.OldTable;
どちらの方法も同様に機能しますが、いくつかの点で異なる場合があります。
- 読みやすさ:
SELECT INTO
クエリは、より簡潔で読みやすい場合があります。 - 柔軟性:
INSERT INTO
クエリは、SELECT
クエリ結果の列順序を変更したり、追加の列を挿入したりするなど、より多くの柔軟性を提供します。 - パフォーマンス: 場合によっては、
INSERT INTO
クエリの方がパフォーマンスが優れている場合があります。
注意事項
- 新しいテーブルを作成する前に、既存のテーブルと名前が重複していないことを確認してください。
SELECT
クエリ結果の列数は、新しいテーブルの列数と一致する必要があります。- データ型も一致する必要があります。
-- データベース "AdventureWorks2019" を使用する
USE AdventureWorks2019;
-- 新しいテーブルを作成する
CREATE TABLE dbo.NewTable (
ProductID int,
ProductName varchar(50),
UnitPrice money
);
-- SELECTクエリの結果を挿入する
INSERT INTO dbo.NewTable
SELECT ProductID, ProductName, UnitPrice
FROM Production.Product;
例2:SELECT INTOを使用したテーブル作成
-- データベース "AdventureWorks2019" を使用する
USE AdventureWorks2019;
-- SELECTクエリの結果を新しいテーブルに挿入する
SELECT ProductID, ProductName, UnitPrice
INTO dbo.NewTable2
FROM Production.Product;
- 特定の列のみを含めて新しいテーブルを作成するにはどうすればよいですか?
- 新しいテーブルにデフォルト値を設定するにはどうすればよいですか?
SELECTクエリ結果からテーブルを作成するその他の方法
SSMSのテーブルデザイナーを使用する
- SQL Server Management Studio (SSMS) を開き、データベースに接続します。
- オブジェクトエクスプローラーで、テーブルを作成するデータベースを選択します。
- メニューバーから [新しい] > [テーブル] を選択します。
- テーブルデザイナーウィンドウで、[クエリ] タブを選択します。
- SELECTクエリを入力します。
- [実行] をクリックします。
- クエリ結果に基づいて新しいテーブルが作成されます。
T-SQLスクリプトを使用する
- 以下のT-SQLスクリプトを使用して、SELECTクエリ結果から新しいテーブルを作成できます。
-- 新しいテーブルを作成する
CREATE TABLE dbo.NewTable (
Column1 int,
Column2 varchar(50)
);
-- SELECTクエリの結果を挿入する
INSERT INTO dbo.NewTable
EXEC sp_executesql @sql;
-- SELECTクエリ
SET @sql = N'
SELECT Column1, Column2
FROM dbo.OldTable;
';
bcpコマンドを使用する
- bcpコマンドを使用して、SELECTクエリ結果をCSVファイルにエクスポートし、そのファイルをインポートして新しいテーブルを作成することができます。
PowerShellを使用する
- PowerShellを使用して、SELECTクエリ結果から新しいテーブルを作成するスクリプトを作成することができます。
これらの方法は、それぞれ異なる利点と欠点があります。
SSMSのテーブルデザイナーを使用する方法は、最も簡単で直感的な方法ですが、複雑なクエリには適していない場合があります。
T-SQLスクリプトを使用する方法は、最も柔軟性がありますが、最も複雑な方法でもあります。
bcpコマンドを使用する方法は、高速で効率的な方法ですが、コマンドプロンプトを使用する必要があるため、初心者には難しく感じるかもしれません。
sql sql-server sql-server-2008