Подтвердить что ты не робот

Как изменить столбец добавления столбца с именованным ограничением по умолчанию и с именем ограничения внешнего ключа?

У меня есть две существующие таблицы (TableA и TableB), и мне нужно добавить новый столбец в таблицуA, который имеет внешний ключ для TableB и имеет значение по умолчанию, которое не является нулевым... и оба эти ограничения должны быть названы, Как я могу это сделать?

4b9b3361

Ответ 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)

Ответ 2

Я сделал это в двух частях, в SQL Server Management Studio.

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

Затем я вручную изменил GUID на то, что они должны действительно быть в новом столбце. Затем я добавил ограничение внешнего ключа.

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