मैं एक मेज आइटम नहीं हैं (ItemID, नाम, ...)ItemID है जहां स्वत: जनरेट पहचानT-SQL: आउटपुट खंड में मूल मान सम्मिलित
मैं इस तालिका में पंक्तियों को जोड़ना चाहते हैं इस तालिका पर चयन से। और तालिका चर में सहेजें OriginalItemID और NewlyGeneratedID के बीच संदर्भ।
DECLARE @ID2ID TABLE (OldItemID INT, NewItemID INT);
INSERT INTO Items OUTPUT Items.ItemID, INSERTED.ItemID INTO @ID2ID
SELECT * FROM Items WHERE Name = 'Cat';
लेकिन Items.ItemID
स्पष्ट रूप से यहाँ काम नहीं करता:
तो मैं वह ऐसा दिखाई दे करना चाहते हैं। क्या OUTTPUT को चयन कथन से मूल आइटम आईडी लेने के लिए कोई कामकाज है?
आप जो आप अपने "पुराने" ItemID मूल्य के साथ भर सकते हैं लक्ष्य मेज पर एक 'OldItemID' की तरह कुछ है करना होगा:
अपने उदाहरण बयान इस प्रकार दिखाई देंगे के लिए। इसके अलावा: यदि वह आइटम आईडी स्वचालित रूप से जेनरेट की गई है, तो आपको ** कॉलम की सूची ('आइटम आईडी' को छोड़कर सब कुछ) स्पष्ट रूप से निर्दिष्ट करना चाहिए, दोनों आइटमों में आपके 'INSERT ...' के साथ-साथ संबंधित 'चयन' (कॉलम की सूची) आइटम से ... 'बयान। अन्यथा, आप "पुराने" ऑटो-जेनरेट किए गए आइटम आईडी मानों का चयन करेंगे और उनको स्वत: जेनरेट किए गए कॉलम में फिर से डालने का प्रयास करेंगे - जो संभवतः –
अच्छा बिंदु भी काम नहीं करेगा। मेरे उदाहरण में एक गलती है। वैसे भी समस्या बनी हुई है। – Evgenyt