केवल एक पहचान कॉलम के साथ तालिका में कैसे सम्मिलित करें?


14

केवल एक पहचान कॉलम वाली तालिका को देखते हुए, आप एक नई पंक्ति कैसे डालेंगे? मैंने निम्नलिखित कोशिश की है:

INSERT INTO TABLE
(Syntax error)

INSERT INTO TABLE VALUES()
(Syntax error)

INSERT INTO TABLE (Id) VALUES()
(Syntax error)

मैं कुछ परीक्षण कर रहा हूं और केवल पहचान कॉलम की आवश्यकता है। यह उत्पादन के लिए नहीं है। अन्यथा, ऐसी तालिका का उपयोग अनुक्रम जनरेटर के रूप में किया जा सकता है, जहां किसी अन्य कॉलम की आवश्यकता नहीं होती है।

जवाबों:


21

से प्रलेखन :

DEFAULT VALUES
प्रत्येक पंक्ति के लिए परिभाषित डिफ़ॉल्ट मानों को शामिल करने के लिए नई पंक्ति को मजबूर करता है।

इसलिए:

INSERT dbo.TABLE DEFAULT VALUES;

के अतिरिक्त:

  1. हमेशा स्कीमा उपसर्ग का उपयोग करें
  2. हमेशा अर्ध-कॉलनों के साथ बयान समाप्त करें

दिलचस्प है, यह SQL2003 (F222) का हिस्सा प्रतीत होता है, लेकिन मैंने पहले कभी निर्माण नहीं देखा है (INSERT INTO हालांकि आवश्यक प्रतीत होता है)। आप हर दिन कुछ नया सीखते हैं :-)
लेनार्ट

3

एक और तरीका उपयोग करना होगा IDENTITY_INSERT। इस तरह आप मैन्युअल रूप से परिभाषित कर सकते हैं कि आप किन मूल्यों को रखना चाहते हैं।

SET IDENTITY_INSERT TABLE ON ;

INSERT INTO TABLE (ID) VALUES (1), (2) ;

SET IDENTITY_INSERT TABLE OFF ;

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.