Bir toplu işleme ekleme deyimi yazıyorum ve kendim öğeleri arasında döngü ve eklenen her satır için SCOPE_IDENTITY () çağırmak yerine eklenen kimlikleri izlemek için bir geçici tablo kullanmak istiyorum.
Eklenmesi gereken veri (geçici) kimliği de başka bir tabloya da eklenmesi gereken diğer verilere bağlayan vardır, bu yüzden gerçek kimliği ve geçici kimliği çapraz referans gerekir.
Bu şimdiye kadar ne var bir örnek:
-- The existing table
DECLARE @MyTable TABLE (ID INT IDENTITY(1,1), [Name] NVARCHAR(MAX));
-- My data I want to insert
DECLARE @MyInsertData TABLE (ID INT, [Name] NVARCHAR(MAX));
INSERT INTO @MyInsertData ( ID,Name)
VALUES ( -1 , 'bla'),(-2,'test'),(-3,'last');
DECLARE @MyCrossRef TABLE ([NewId] INT, OldId INT);
INSERT INTO @MyTable ( [Name] )
OUTPUT Inserted.ID, INS.ID INTO @MyCrossRef
SELECT [NAME] FROM @MyInsertData INS
-- Check the result
SELECT * FROM @MyCrossRef
Sorun, kimliği kabul etmek için OUTPUT INTO yan tümcesini alamıyorum, denedim @MyInsertData.ID
ve tabloya kendisine katılan diğer hileler, ama hiçbir şey işe yaramaz gibi görünüyor.