जवाबों:
आपको एक तालिका चर की आवश्यकता है और यह यह सरल हो सकता है।
declare @ID table (ID int)
insert into MyTable2(ID)
output inserted.ID into @ID
values (1)
output?
DECLARE @InsertedIDResults TABLE (ID int); INSERT INTO MyTable (Name, Age) OUTPUT INSERTED.ID INTO @InsertedIDResults VALUES('My Name', 30); DECLARE @InsertedID int = (SELECT TOP 1 ID FROM @InsertedIDResults);
एक साल बाद ... यदि आपको किसी मेज की ऑटो जेनरेट की गई आईडी मिलनी चाहिए, तो आप कर सकते हैं
SELECT @ReportOptionId = SCOPE_IDENTITY()
अन्यथा, ऐसा लगता है कि आप एक तालिका का उपयोग करने के साथ फंस गए हैं।
वे बाद में लेकिन अभी भी ध्यान देने योग्य है कि आप एक UPDATE के SET क्लॉज में या किसी SELECT के क्षेत्र में आउटपुट मान के लिए चर का उपयोग कर सकते हैं;
DECLARE @val1 int;
DECLARE @val2 int;
UPDATE [dbo].[PortalCounters_TEST]
SET @val1 = NextNum, @val2 = NextNum = NextNum + 1
WHERE [Condition] = 'unique value'
SELECT @val1, @val2
@ Val1 से ऊपर के उदाहरण में पहले मूल्य है और @ val2 के बाद का मूल्य है, हालांकि मुझे संदेह है कि ट्रिगर से कोई भी परिवर्तन val2 में नहीं होगा, इसलिए आपको उस मामले में आउटपुट तालिका के साथ जाना होगा। किसी भी चीज़ के लिए, लेकिन सबसे सरल मामले में, मुझे लगता है कि आउटपुट तालिका आपके कोड में भी अधिक पठनीय होगी।
यदि आप किसी स्तंभ को अल्पविराम से अलग की गई सूची में बदलना चाहते हैं तो यह एक जगह बहुत मददगार है;
DECLARE @list varchar(max) = '';
DECLARE @comma varchar(2) = '';
SELECT @list = @list + @comma + County, @comma = ', ' FROM County
print @list
SET @val2 = NextNum = NextNum + 1।