sql server - डिफ़ॉल्ट डिफ़ॉल्ट बाधा और नामांकित विदेशी कुंजी बाधा के साथ तालिका जोड़ने वाले कॉलम को कैसे बदला जाए?



sql-server (2)

मेरे पास दो मौजूदा टेबल (टेबलए और टेबलबी) हैं और मुझे टेबलएबी के लिए एक नया कॉलम जोड़ने की जरूरत है जिसमें टेबलबी के लिए एक विदेशी कुंजी है और एक डिफ़ॉल्ट मान है जो शून्य नहीं है ... और इन दोनों बाधाओं का नाम होना चाहिए। मैं यह कैसे कर सकता हूँ?

https://src-bin.com


Answer #1

एक बयान में दोनों बाधाओं को जोड़ना उतना आसान नहीं था जितना मैंने सोचा था कि यह होगा और वहाँ कई उदाहरण नहीं दिखते थे (कम से कम मुझे कोई बहुत आसानी से नहीं मिल रहा था), तो मैंने सोचा कि मैं करूँगा साझा करें कि मैंने इसे यहां कैसे किया और शायद कोई बेहतर तरीका सुझा सकता है?

ALTER TABLE [table name] ADD
    [New Column Name] [Column Type] 
    CONSTRAINT [constraint name] DEFAULT ([default value]) NOT NULL,
    CONSTRAINT [constraint name] FOREIGN KEY ([New Column Name]) 
    REFERENCES [Other Table] ([Foreign ID])

उदाहरण:

ALTER TABLE tableA ADD
    myNewColumn BIGINT 
    CONSTRAINT myNamedConstraint_df default (1) NOT NULL,
    CONSTRAINT myNamedConstraint_fk FOREIGN KEY (myNewColumn)
    REFERENCES tableB (tableBPrimaryKeyID)

Answer #2

मैंने इसे दो भागों में किया, SQL सर्वर प्रबंधन स्टूडियो में।

ALTER TABLE MyTable
ADD MyId uniqueidentifier DEFAULT (NEWID())

फिर मैंने मैन्युअल रूप से GUID को बदल दिया कि उन्हें वास्तव में नए कॉलम में क्या होना चाहिए। फिर मैंने विदेशी कुंजी बाधा जोड़ी।

ALTER TABLE MyTable
ADD FOREIGN KEY (MyId )
REFERENCES OtherTable(Id)





sql-server