2009-08-31 11 views
25
create table ImagenesUsuario 
{ 
    idImagen int primary key not null IDENTITY 
} 

यह काम नहीं करता है। मैं यह कैसे कर सकता हूँ?प्राथमिक कुंजी के रूप में एसक्यूएल पहचान बनाएँ?

create table ImagenesUsuario (
    idImagen int not null identity(1,1) primary key 
) 

स्पष्ट रूप से "बाधा" कीवर्ड का उपयोग करके आप प्राथमिक कुंजी बाधा नहीं बल्कि स्वत: सौंपे को एसक्यूएल सर्वर पर निर्भर करता है की तुलना में एक विशेष नाम दे सकते हैं:

+7

भविष्य के लिए, जब आप कहते हैं कि "यह काम नहीं करता है" तो समझें कि आपका क्या मतलब है। क्या यह चुपचाप किसी तरह से विफल रहता है? क्या आपको कोई त्रुटि मिलती है, और यदि ऐसा है तो त्रुटि क्या है? क्या आपका कंप्यूटर स्वचालित रूप से दहन करता है? जब आप तालिका बनाते हैं या पंक्ति में पंक्तियां डालते हैं तो यह असफल हो जाता है? –

उत्तर

55

वाक्य रचना करने के लिए सरल परिवर्तन की आवश्यकता होती है एक का नाम:

create table ImagenesUsuario (
    idImagen int not null identity(1,1) constraint pk_ImagenesUsario primary key 
) 

"क्लस्टर" कीवर्ड जोड़ें, तो उस तालिका (के आपके उपयोग के आधार पर सबसे समझ में आता है यानी, समूहन के लाभ outweighs एक विशेष idImagen के लिए खोजों की शेष राशि और लेखन की राशि कुछ अन्य सूचकांक द्वारा तालिका)।

8

यह हमारी टीम पर उत्पन्न स्क्रिप्ट के समान है। पहले टेबल बनाएं, फिर पीके/एफके और अन्य बाधाओं को लागू करें।

CREATE TABLE [dbo].[ImagenesUsuario] (
    [idImagen] [int] IDENTITY (1, 1) NOT NULL 
) 

ALTER TABLE [dbo].[ImagenesUsuario] ADD 
    CONSTRAINT [PK_ImagenesUsuario] PRIMARY KEY CLUSTERED 
    (
     [idImagen] 
    ) ON [PRIMARY] 
+2

क्या कोई कारण है कि आप तालिका तालिका विवरण में प्राथमिक कुंजी बनाने से बचें? –

+3

मुझे लगता है कि हम मूल रूप से एंटरप्राइज़ मैनेजर जैसे टूल द्वारा उत्पादित स्क्रिप्ट की नकल करते हैं। यह बताता है कि आप प्राथमिक कुंजी बाधा बना रहे हैं (कॉलम प्रॉपर्टी के विपरीत)। यह आपको बाधा का नाम देने की अनुमति देता है। अंत में, दोनों तरीके काम करते हैं इसलिए मुझे लगता है कि यह वरीयता का विषय है जिस पर किसी को पढ़ने/बनाए रखना आसान होता है। – Mayo

1

आप T-SQL उपयोग कर रहे हैं, केवल एक चीज अपने कोड के साथ गलत है कि आप ब्रेसिज़ {} बजाय कोष्ठकों () प्रयोग किया जाता है।

पीएस: IDENTITY और PRIMARY KEY दोनों NOT NULL का संकेत देते हैं, इसलिए यदि आप चाहें तो आप इसे छोड़ सकते हैं।

संबंधित मुद्दे