अद्यतनएसक्यूएल सर्वर में प्राथमिक कुंजी स्तंभ बदलें
क्वेरी
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = 'history'
CONSTRAINT_NAME COLUMN_NAME ORDINAL_POSITION
PK_history userKey 1
PK_history name 2
यहाँ के परिणामस्वरूप की कमी है क्वेरी
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE TABLE_NAME = 'history'
CONSTRAINT_NAME CONSTRAINT_TYPE IS_DEFERRABLE INITIALLY_DEFERRED
PK_history PRIMARY KEY NO NO
अंत का परिणाम है अद्यतन
मेरा होस्ट एएसपी.NET एंटरप्राइज़ मैनेजर के माध्यम से मेरे SQL सर्वर डीबी में एक इंटरफ़ेस प्रदान करता है।
मैं अपने history
तालिका में 3 कॉलम हैं:
userId
(कुंजी, पूर्णांक, शून्य अनुमति नहीं)name
(कुंजी, स्ट्रिंग, शून्य अनुमति नहीं)id
(कुंजी नहीं, int, NULL अनुमत)
मैं आईडी कॉलम को एकमात्र कुंजी बनाना चाहता हूं।
कि ऐसा करने के लिए, मेरा मानना है कि मैं की जरूरत है:
- यकीन है कि वहाँ किसी भी पंक्ति
- स्तंभ सेट की अनुमति नहीं करने के लिए NULLs
- एक के रूप में स्तंभ जोड़ें के लिए उस कॉलम में कोई NULLs हैं प्राथमिक कुंजी
- निकालें अन्य 2 चाबियाँ
हालांकि, जब मैं प्रदान की UI का उपयोग, यह कभी नहीं काम करता है के रूप में कॉलम। कभी-कभी ऐसा लगता है कि यह कुछ करने की कोशिश करता है लेकिन जब मैं कॉलम के दृश्य को रीफ्रेश करता हूं तो यह कभी नहीं बदलता है। यह कभी-कभी एक अस्थायी तालिका बनाता है जो ऐसा लगता है कि यह कुछ ऑपरेशन करने की कोशिश करता है, लेकिन उस मूल तालिका को प्रतिलिपि/अधिलेखित नहीं करता जिसे मैं बदलने की कोशिश कर रहा हूं।
जब मैं कोई प्रश्न का उपयोग करने का प्रयास करता हूं, तो परिवर्तन भी दिखाई नहीं देते हैं।
SELECT * from history WHERE id is NULL <---- This shows 0 results
ALTER TABLE history
ALTER COLUMN id int NOT NULL
ALTER TABLE history ADD PRIMARY KEY (id)
ALTER TABLE history
DROP CONSTRAINT userId
DROP CONSTRAINT name
GO
मैं केवल प्रयास करने के लिए मिल गया है NULLs अस्वीकृत करने के लिए और आईडी स्तंभ के लिए प्राथमिक कुंजी जोड़ने के लिए: यहाँ प्रश्नों मुझे लगता है कि मैं जरूरत है। यह काम नहीं लग रहा है। क्या कोई मुझे सही दिशा दिखा सकता है? धन्यवाद!
क्या आपको एक त्रुटि संदेश मिलता है? –
आपको बाधाओं को पहले –
नहीं छोड़ना चाहिए, मुझे क्वेरी के साथ कोई त्रुटि संदेश नहीं मिला है। यूआई के साथ, मुझे आईडी कॉलम को एक कुंजी पर सेट करने से संबंधित त्रुटि मिली जब यह नल की अनुमति देता है, लेकिन नल को अस्वीकार करने का प्रयास करते समय कोई त्रुटि नहीं होती है। – ckbhodge