तालिका में डेटा सम्मिलित करते समय SQL सर्वर में यह एक सामान्य रूप से सामने आई त्रुटि है। पूरी त्रुटि इस प्रकार है:
Msg 109, Level 15, State 1, Line 1 There are more columns in the INSERT statement than values specified in the VALUES clause. The number of values in the VALUES clause must match the number of columns specified in the INSERT statement.
ऐसा तब होता है जब आप INSERT
. में अधिक कॉलम निर्दिष्ट करते हैं VALUES
. के साथ आप जितने मानों को सम्मिलित करने का प्रयास कर रहे हैं, उससे अधिक विवरण खंड।
यह तब होगा जब आप गलती से VALUES
. से एक या अधिक मान छोड़ दें खंड।
यदि आप इसके विपरीत करने का प्रयास करते हैं तो आपको एक समान (लेकिन तकनीकी रूप से भिन्न) त्रुटि मिलेगी - कम निर्दिष्ट करें INSERT
. में कॉलम आपके द्वारा सम्मिलित करने का प्रयास करने की तुलना में कथन।
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
INSERT INTO Customers (FirstName, LastName)
VALUES ('Bob');
परिणाम:
Msg 109, Level 15, State 1, Line 1 There are more columns in the INSERT statement than values specified in the VALUES clause. The number of values in the VALUES clause must match the number of columns specified in the INSERT statement.
इस मामले में, मैं दो कॉलम निर्दिष्ट करता हूं (FirstName
, LastName
), लेकिन मैं डालने के लिए केवल एक मान निर्दिष्ट करता हूं (Bob
)।
त्रुटि कैसे ठीक करें
मैं या तो किसी एक कॉलम को हटाकर या डालने के लिए दूसरा मान जोड़कर इसे ठीक कर सकता हूं।
तो मैं यह कर सकता था:
INSERT INTO Customers (FirstName)
VALUES ('Bob');
या यह:
INSERT INTO Customers (FirstName, LastName)
VALUES ('Bob', 'Brown');
हालांकि, इन उदाहरणों का उपयोग करते हुए, यदि अंतिम नाम कॉलम में एक NOT NULL
है बाधा, पहला उदाहरण उस बाधा का उल्लंघन करेगा (क्योंकि मैं NULL
सम्मिलित करने का प्रयास कर रहा हूँ अंतिम नाम . में कॉलम जब वास्तव में एक NOT NULL
है उस कॉलम पर प्रतिबंध)।