1

次のコマンドで作成された一時テーブルがあります。

DECLARE @tbl_fk_errors TABLE (
    id int Primary Key IDENTITY(1,1)
    , tbl_id int
    , tbl_name nvarchar(128)
    , tbl_record_id int
    , tbl_field nvarchar(20)
    , tbl_field_value nvarchar(20)
    , jnktn_field_value nvarchar(20)
    , jnktn_field nvarchar(20)
    , jnktn_tblname nvarchar(128)

そのテーブルは私のスクリプトに記入されます。次に、そのテーブルをファイルに出力して、それを実行できるxp_cmdshellを見つけます。しかし、そのストアドプロシージャは、DBへの新しい接続を開くため(「bcp」のため)、テーブル変数を取得できません。

そのテーブルを一時的にDBに保存する必要があります(その後ドロップしますが、それは大したことではありません)。

テーブル変数に格納されているテーブルを実際のテーブルとしてDBにすばやく保存するにはどうすればよいですか?

4

1 に答える 1

2
select *
into table --destination
from @table --source

ボーナスとして、エラーが発生した場合に「ぶら下がっている」テーブルを残さないように、これをトランザクションでラップします。DDLはSQLServerではトランザクションです。ロールバック時に、テーブルは削除されます。

于 2012-11-28T22:09:59.927 に答える