質問: 私は、SqlBulkCopyを使用してバルクレコードをテーブルに挿入するアプリケーションを持っています。最初のテーブルに追加されたレコードを別のテーブルに挿入するトリガがあります。 私が挿入しているとき、私はC#でSqlBulkCopyOptions.FireTriggersを書いたが、Sql Server 2005では動作していない。SqlServer2008で正常に動作した。 SQL Server 2005では、レコードが最初のテーブルに挿入されるたびに、挿入された行の1つのレコードのみが2番目のテーブルに表示されます。 SQL Serverだけでこれを管理できますか?
回答: 1つのオプションは、ステージングテーブル(2番目の単純なテーブル - メインデータモデルの一部ではなく、通常はインデックス/制約/トリガ/ etc)に一括コピーすることです`SELECT`ベースの`INSERT`を発行してステージングテーブルのデータをメイントランザクションテーブルに格納します。これにより、 `SqlBulkCopy`の帯域幅の利点を得ることができますが、最終的な`INSERT`は完全なSQLサーバー機能があります。