2012-10-23 7 views

risposta

73

L'aggiunta di entrambi i vincoli in una dichiarazione non era facile come pensavo sarebbe e non sembravano esserci molti esempi là fuori (almeno non ero in grado di trovarla facilmente), quindi ho pensato di condividere come l'ho fatto qui e forse qualcuno può suggerire un modo migliore?

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

Esempio:

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

l'ho fatto in due parti, in SQL Server Management Studio.

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

Quindi ho modificato manualmente i GUID per quello che dovrebbero essere nella nuova colonna. Quindi ho aggiunto il vincolo di chiave esterna.

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