sql >> データベース >  >> RDS >> Sqlserver

SQLServerテーブルにデータを挿入するさまざまな方法は何ですか-SQLServer/TSQLチュートリアルパート100

    シナリオ:

    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サーバーテーブルにデータを挿入する方法


    1. Mysql localhost!=127.0.0.1?

    2. PostgreSQLのシードファイルを使用する場合のJPAの例外

    3. PSQLException:現在のトランザクションは中止され、トランザクションブロックが終了するまでコマンドは無視されます

    4. SQLServerのforループの構文