SQL Server: drop table primary key, without knowing its name -


हाय,

का उपयोग करना: SQL सर्वर डाटाबेस: नॉर्थविंड

I पीके की बाध्यता के नाम को जानने के बिना टेबल प्राथमिक कुंजी को छोड़ना है। उदाहरण के लिए, नॉर्थविंड नमूना डाटाबेस में श्रेणियाँ तालिका का उपयोग करते हुए, प्राथमिक कुंजी कॉलम 'श्रेणीआईडी' है, और प्राथमिक कुंजी नाम है 'PK_Categories'

प्राथमिक कुंजी नाम जानने के दौरान मैं प्राथमिक कुंजी को छोड़ सकता हूँ:

  वैकल्पिक तालिका श्रेणियां ड्रॉप कंट्राइंट पीकेकेचैंस;  

और मैं तालिका नाम के आधार पर तालिका के लिए प्राथमिक कुंजी नाम भी प्राप्त कर सकता हूं:

  sysobjects से नाम चुनें जहां xtype = 'pk' और parent_obj = हालांकि, प्राथमिक कुंजी नाम को जानने के बिना, मैं तालिका की प्राथमिक कुंजी को हटाने के लिए उन्हें एक साथ नहीं रख सकता, लेकिन मैं उन्हें एक साथ नहीं डाल सकता। "Gtc: suffix =" "gtc: mediawiki-xid =  

मैं कोशिश कर रहा हूँ:

  वैकल्पिक तालिका श्रेणियां ड्रॉप कंट्राइंस (सिसोबैक्स से नाम का चयन करें जहां xtype = 'PK' और parent_obj = object_id ('categories'))  

बॉब

= "Post-text" itemprop = "text">

आपको उस के लिए गतिशील एसक्यूएल का उपयोग करना होगा, क्योंकि परिवर्तन तालिका चर या उपकुंजी स्वीकार नहीं करती है।

  बनाओ टेबल PKTest ( आईडी इंटी प्राथमिक कुंजी); DECLARE @SQL VARCHAR (4000) SET @SQL = 'वैकल्पिक तालिका PKTEST ड्रॉप कंट्राइंस | ConstraintName | 'SET @sql = REPLACE (@sql,' | constraintName | ', (sysobjects से चयन करें नाम WHERE xtype =' PK 'और parent_obj = OBJECT_ID (' PKTest ')) EXEC (@sQL) ड्रॉप तालिका PKTest  

Comments

Popular posts from this blog

asp.net - Javascript/DOM Why is does my form not support submit()? -

sockets - Delphi: TTcpServer, connection reset when reading -

javascript - Classic ASP "ExecuteGlobal" statement acting differently on two servers -