6
INSERT
マルチパッドの行(INSERT SELECT
を使用)とOUTPUT
すべての新しいIDと古いIDを「マッピング」テーブルに追加します。複数の行とOUTPUT元の(元の)値を挿入する
は、どのように私はOUTPUT
句で元 ID(または任意のソース値)を得ることができますか?ソース値を取得する方法はありません。ここ
は、最小限のコードの例である:私は一時的に「元ID」を格納するためにデータテーブルに一時列を作成することはできません例えばよう
-- create some test data
declare @t table (id int identity, name nvarchar(max))
insert @t ([name]) values ('item 1')
insert @t ([name]) values ('another item')
-- duplicate items, storing a mapping from src ID => dest ID
declare @mapping table (srcid int, [newid] int)
insert @t ([name])
output ?????, inserted.id into @mapping-- I want to use source.ID but it's unavailable here.
select [name] from @t as source
-- show results
select * from @t
select * from @mapping
私の実際のシナリオでは、より複雑であり、そして私は「ID」列以外のものでアイテムを一意に識別することはできません。
[あなたが2008年ではありません恥](http://stackoverflow.com/questions/5365629/using-merge-output-to -get-mapping-source-idとtarget-idの間のマッピング) –