আমি একটি ব্যাচ প্রসেসিং সন্নিবেশ বিবৃতি লিখছি এবং প্রতিটি আইটেমটি নিজে থেকে লুপিংয়ের পরিবর্তে এবং inোকানো প্রতিটি সারির জন্য SCOPE_IDENTITY () কল করার পরিবর্তে sertedোকানো আইডির ট্র্যাক রাখতে একটি টেম্প টেবিল ব্যবহার করতে চাই।
যে তথ্যটি সন্নিবেশ করা দরকার সেগুলির মধ্যে (অস্থায়ী) আইডি এটির অন্য ডেটার সাথে সংযোগ স্থাপন করে যা অন্য টেবিলে beোকানো উচিত, সুতরাং আমার আসল আইডি এবং অস্থায়ী আইডির ক্রস রেফারেন্স প্রয়োজন।
আমার এতদূর যা আছে তার এটি একটি উদাহরণ:
-- 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
সমস্যাটি হ'ল আমি আইডিটি গ্রহণ করার জন্য আউটপুট INTO ধারাটি পেতে পারি না, আমি চেষ্টা করেছি @MyInsertData.ID
এবং অন্য কৌশলগুলি নিজেরাই টেবিলটিতে যোগদান করার চেষ্টা করেছি , তবে কিছুই কাজ করছে বলে মনে হচ্ছে না।