Я не знаю о чем-то, что позволяет делать все это одновременно, но вот оператор select, который может заставить вас выиграть немного времени:
SELECT 'ALTER TABLE [' + o1.name + '] DROP CONSTRAINT [' + fk.name + ']' AS DROP_STATEMENT
, 'ALTER TABLE [' + o1.name +'] ADD CONSTRAINT [' + fk.name + '] FOREIGN KEY ([' + c.name + ']) REFERENCES [' + o2.name + '] ON DELETE SET NULL' AS CREATE_STATEMENT
FROM sys.foreign_keys fk
INNER JOIN sys.objects o1 ON fk.parent_object_id = o1.object_id
INNER JOIN sys.objects o2 ON fk.referenced_object_id = o2.object_id
INNER JOIN sys.foreign_key_columns fkc ON fk.object_id = fkc.constraint_object_id
INNER JOIN sys.columns c ON c.object_id = o2.object_id AND c.column_id = fkc.referenced_column_id
Как указано в комментарияхэто не будет работать вообще, если fk ссылается на два или более столбцов.Однако, поскольку я не думаю, что смогу легко адаптировать этот запрос, и я не знаю, какое значение для вас будет;Я не будуПросто имейте это в виду.