シナリオ:
SQL Server開発者は、SQLServerテーブルにデータを挿入するさまざまな方法を用意する必要があります。静的レコードを挿入するだけの場合もあれば、別のテーブルから既存のテーブルにデータを挿入する必要がある場合もあります。 SQLServerテーブルにデータを挿入するためのさまざまな手法を確認してみましょう。
解決策:
まず、以下の定義を使用してdbo.Customerテーブルを作成しましょう。USE yourDatabaseName Go Create Table dbo.Customer( Id int identity(1,1), FName VARCHAR(50), LName VARCHAR(50), Age int, DOB Date, Salary Numeric(6,2))
1)複数の挿入を使用してデータをテーブルに挿入します。
Insert into dbo.Customer(FName,LName,Age,DOB,Salary) Values('Aamir','Shahzad',36,'1980-01-01',5000.50) GO Insert into dbo.Customer(FName,LName,Age,DOB,Salary) Values ('Raza','M',33,'1983-03-03',4900.34) GO Insert into dbo.Customer(FName,LName,Age,DOB,Salary) Values ('John','Smith',26,'1990-04-05',5000.50)
2)複数の値を持つ単一の挿入を使用する
上記の例のように、複数の挿入を使用します。それぞれが単一のレコードを挿入していました。 SQL Serverでは、以下に示すように、複数の値を持つ単一の挿入を使用できます。Insert into dbo.Customer(FName,LName,Age,DOB,Salary) Values('Aamir','Shahzad',36,'1980-01-01',5000.50), ('Raza','M',33,'1983-03-03',4900.34), ('John','Smith',26,'1990-04-05',5000.50)
3)Select with Insertを使用して、レコードを挿入します
Insert with Selectクエリを使用して、selectクエリによって返された結果セットを挿入できます。Insert into dbo.Customer(FName,LName,Age,DOB,Salary) Select 'Aamir' as FName,'Shahzad' as LName,36 as Age,'1980-01-01' as DOB,5000.50 as Salary union all Select 'Raza','M',33,'1983-03-03',4900.34 Union all Select 'John','Smith',26,'1990-04-05',5000.50
4)列名を指定せずに挿入を使用する
上記の例で見たように、私は挿入で列リストを使用しました。使用している列と値の順序がわかっている場合は、それを使用する必要はありません。私は常に挿入で列リストを使用し、正しい列のテーブルに正しいデータを挿入していることを確認するために選択します。--Insert without provide Column Names Insert into dbo.Customer Select 'Aamir' as FName,'Shahzad' as LName,36 as Age,'1980-01-01' as DOB,5000.50 as Salary union all Select 'Raza','M',33,'1983-03-03',4900.34 Union all Select 'John','Smith',26,'1990-04-05',5000.50
Also we can use the insert without Column Names with Values option
Insert into dbo.Customer Values('Aamir','Shahzad',36,'1980-01-01',5000.50), ('Raza','M',33,'1983-03-03',4900.34), ('John','Smith',26,'1990-04-05',5000.50)
5)別のテーブルから宛先テーブルにデータを挿入します
これまで見てきたように、selectクエリの結果をテーブルに挿入できます。上記の例では、静的な値をselectで使用しています。テーブル、ビュー、関数などからデータを選択して、テーブルに挿入できます。 dbo.CustomerUSテーブルからdbo.Customerテーブルにデータを挿入する場合を考えてみましょう。以下のクエリを使用できます。--Insert into table from another table Select into dbo.Customer(FName,LName,Age,DOB,Salary) Select FName,LName,Age,DOB,Salary from dbo.CustomerUS
ビデオデモ:T-SQLステートメントを使用してSQLサーバーテーブルにデータを挿入する方法