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

SQL BulkCopy の後に PrimaryKey ID を取得できますか?

    そのシナリオでは、SqlBulkCopy を使用します。 ステージングに挿入する テーブル (つまり、インポートしたいデータのように見えるが、メインのトランザクション テーブルの一部ではないもの)、そして DB で INSERT に /SELECT データを最初の実際のテーブルに移動します。

    サーバーのバージョンに応じて、2 つの選択肢があります。 2 番目の INSERT を実行できます /SELECT 2番目の実際のテーブルに、または INSERT を使用できます /OUTPUT テーブルの ID 行を使用して、2 番目の挿入を行う句。

    例:

         -- dummy schema
         CREATE TABLE TMP (data varchar(max))
         CREATE TABLE [Table1] (id int not null identity(1,1), data varchar(max))
         CREATE TABLE [Table2] (id int not null identity(1,1), id1 int not null, data varchar(max))
    
         -- imagine this is the SqlBulkCopy
         INSERT TMP VALUES('abc')
         INSERT TMP VALUES('def')
         INSERT TMP VALUES('ghi')
    
         -- now push into the real tables
         INSERT [Table1]
         OUTPUT INSERTED.id, INSERTED.data INTO [Table2](id1,data)
         SELECT data FROM TMP
    


    1. Googleはphp配列から連続x軸をグラフ化します

    2. 従属テーブルからのデータの削除

    3. PythonとMySQLdb-EXISTSが例外をスローするように見える場合にDROPTABLEを使用する

    4. 日付に基づいてテーブルからデータを選択する