2012-10-23 35 views

Trả lời

73

Việc thêm cả hai ràng buộc trong một câu lệnh không dễ như tôi nghĩ và dường như không có nhiều ví dụ ở đó (ít nhất tôi không thể tìm thấy bất kỳ điều gì dễ dàng), vì vậy tôi nghĩ rằng tôi sẽ chia sẻ cách tôi đã làm nó ở đây và có lẽ ai đó có thể đề xuất một cách tốt hơn?

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]) 

Ví dụ:

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

tôi đã làm nó thành hai phần, trong SQL Server Management Studio.

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

Sau đó, tôi đã thay đổi GUID theo cách thủ công thành những gì họ thực sự nên ở cột mới. Sau đó, tôi đã thêm ràng buộc khóa ngoài.

ALTER TABLE MyTable 
ADD FOREIGN KEY (MyId) 
REFERENCES OtherTable(Id) 
Các vấn đề liên quan