2012-10-23 15 views

Odpowiedz

73

Dodanie obu ograniczeń w jednym stwierdzeniu nie było tak łatwe, jak myślałem, i nie było tam wielu przykładów (przynajmniej nie byłem w stanie znaleźć żadnego bardzo łatwo), więc Myślałem, że podzielę się tym, jak to zrobiłem, a może ktoś może zaproponować lepszy sposób?

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

Przykład:

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

Zrobiłem to w dwóch częściach, w SQL Server Management Studio.

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

Potem ręcznie zmieniono GUID, co powinny one być naprawdę w nowej kolumnie. Następnie dodałem ograniczenie klucza obcego.

ALTER TABLE MyTable 
ADD FOREIGN KEY (MyId) 
REFERENCES OtherTable(Id) 
Powiązane problemy