ठीक है तो यहां एक त्वरित SQL प्रश्न (एसक्यूएल-सर्वर-2008 का उपयोग करके)।एसक्यूएल का चयन करें या वापसी आईडी
मैं मुझे क्या करना चाहते हैं पहले SELECT [ID] FROM [names] WHERE [DisplayName] = 'chuck';
है लेकिन, अगर नाम 'चक' में मौजूद नहीं है निम्न स्तंभ
ID
DisplayName
के साथ एक मानचित्रण तालिका names
है डेटाबेस, मैं इसे बनाना चाहता हूं, और ऑटो incremented ID
वापस करना चाहता हूं।
मैं सोच रहा था कि क्या एसक्यूएल ने इसे आसान तरीके से करने के तरीके में बनाया है, या अगर मुझे लंबा रास्ता तय करना है? इस
SELECT COUNT(ID) AS count, ID FROM names WHERE DisplayName='chuck'
IF(count > 0)
SELECT ID as ReturnID;
ELSE
BEGIN
INSERT INTO names(DisplayName) values('chuck');
SELECT scope_identity() as ReturnID;
END
तरह
लंबे मार्ग कुछ किया जा रहा है मुझे लगता है कि पिछले बयान का परीक्षण नहीं किया, लेकिन मुझे लगता है लंबा रास्ता तय करना ऐसा ही कुछ होगा। यदि कोई रास्ता नहीं बनाया गया है, तो मैं इसकी सराहना करता हूं अगर कोई उस कथन को सही कर सकता है (जैसा कि मुझे यकीन है कि यह पूरी तरह से सही नहीं है)।
यदि केवल 200 * + का समर्थन करते हैं, तो [MERGE वाक्यविन्यास] का उपयोग करें (http://technet.microsoft.com/en-us/library/bb510625.aspx) –
क्या आप एक उदाहरण प्रदान कर पाएंगे? मैं एसक्यूएल का उपयोग करने के अधिक उन्नत तरीकों को सीखने की कोशिश कर रहा हूं। –
@ केल्टन 52: लेख ओएमजी टट्टू से जुड़े लेख के अंत में उदाहरण हैं। आपको थोड़ा नीचे स्क्रॉल करने की आवश्यकता है। –