में अद्यतन आउटपुट को अद्यतन करें, मैं एक अद्यतन और चयन करने की कोशिश कर रहा हूं ... मूल रूप से, एक इंडेक्स के आधार पर अद्यतन करें, और उसके बाद अपडेट की गई पंक्ति आईडी का चयन करें।एक चर
इस उत्पादन खंड का उपयोग कर सरल है:
UPDATE Foo
SET Bar = 1
OUTPUT INSERTED.Id
WHERE Baz = 2
लेकिन अब, कैसे मैं इस एक चर में मिलता है?
DECLARE @id INT
ये तीन काम नहीं करते:
UPDATE Foo
SET Bar = 1
OUTPUT @id = INSERTED.Id
WHERE Baz = 2
SET @id =
(UPDATE Foo
SET Bar = 1
OUTPUT INSERTED.Id
WHERE Baz = 2)
SET @id =
(SELECT Id FROM (UPDATE Foo
SET Bar = 1
OUTPUT INSERTED.Id Id
WHERE Baz = 2) z)
पिछले एक शामिल ऐसा इसलिए है क्योंकि यह मुझे अस्थायी रूप से उत्साहित था जब सभी लाल squigglies प्रबंधन स्टूडियो में चला गया। अफसोस, मैं इस त्रुटि मिलती है:
A nested INSERT, UPDATE, DELETE, or MERGE statement is not allowed in a SELECT statement that is not the immediate source of rows for an INSERT statement.
मैं भी इस बात का कभी नहीं सोचा है। बहुत अच्छा! –
धन्यवाद कॉरी, मुझे आश्चर्य हुआ कि अद्यतन के अंदर सेट कीवर्ड एक चर सेट करने में सक्षम होगा और यह काम करता है! –
यह काम एक ही प्रभावित पंक्ति के लिए 'insert' के साथ करेगा? – rahoolm