मैं SQL Server 2005 में मौजूदा तालिका पर एक अद्वितीय बाधा कैसे बना सकता हूं?
मैं TSQL दोनों की तलाश कर रहा हूं और इसे डेटाबेस आरेख में कैसे करना है।
मैं SQL Server 2005 में मौजूदा तालिका पर एक अद्वितीय बाधा कैसे बना सकता हूं?
मैं TSQL दोनों की तलाश कर रहा हूं और इसे डेटाबेस आरेख में कैसे करना है।
जवाबों:
SQL कमांड है:
ALTER TABLE <tablename> ADD CONSTRAINT
<constraintname> UNIQUE NONCLUSTERED
(
<columnname>
)
यहां पूरा सिंटैक्स देखें ।
यदि आप इसे डेटाबेस आरेख से करना चाहते हैं:
SQL सर्वर प्रबंधन स्टूडियो एक्सप्रेस में:
चेतावनी: आपके द्वारा निर्धारित कॉलम में केवल एक शून्य पंक्ति अद्वितीय हो सकती है।
आप इसे SQL 2008 में फ़िल्टर किए गए अनुक्रमणिका के साथ कर सकते हैं:
CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;
फ़ील्ड मान देखें जब तक कि यह उत्तर की एक सीमा के लिए पूर्ण न हो, तब तक अद्वितीय होना चाहिए ।
ALTER TABLE dbo.<tablename> ADD CONSTRAINT
<namingconventionconstraint> UNIQUE NONCLUSTERED
(
<columnname>
) ON [PRIMARY]
मैंने यह भी पाया कि आप ऐसा कर सकते हैं, डेटाबेस आरेख।
तालिका को राइट क्लिक करके और अनुक्रमणिका / कुंजी का चयन करके ...
'जोड़ें' बटन पर क्लिक करें, और कॉलम को उस कॉलम में बदल दें जो आप चाहते हैं कि यह अनूठा हो।
चेंज इज यूनिक टू यस।
आरेख पर क्लिक करें और आरेख को सहेजें, और यह इसे तालिका में जोड़ देगा।
आप निम्नलिखित की तरह कुछ की तलाश कर रहे हैं
ALTER TABLE dbo.doc_exz
ADD CONSTRAINT col_b_def
UNIQUE column_b
तालिका के पहले से ही निर्मित होने पर एक या कई स्तंभों पर एक UNIQUE बाधा बनाने के लिए, निम्न SQL का उपयोग करें:
ALTER TABLE TableName ADd UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)
उपरोक्त क्वेरी के लिए एक UNIQUE बाधा के नामकरण की अनुमति देने के लिए
ALTER TABLE TableName ADD CONSTRAINT un_constaint_name UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)
MySQL / SQL Server / Oracle / MS Access द्वारा समर्थित क्वेरी।
UNIQUE NONCLUSTERED
और विकल्प PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON
?
कुछ स्थितियों में, यह सुनिश्चित करने के लिए वांछनीय हो सकता है कि इसे बनाने से पहले अनन्य कुंजी मौजूद नहीं है। ऐसे मामलों में, नीचे दी गई स्क्रिप्ट मदद कर सकती है:
IF Exists(SELECT * FROM sys.indexes WHERE name Like '<index_name>')
ALTER TABLE dbo.<target_table_name> DROP CONSTRAINT <index_name>
GO
ALTER TABLE dbo.<target_table_name> ADD CONSTRAINT <index_name> UNIQUE NONCLUSTERED (<col_1>, <col_2>, ..., <col_n>)
GO