В дополнение к предложению KLE могут помочь следующие запросы:
Чтобы отключить все ограничения для таблиц, которые ссылаются на oldTable, попробуйте выполнить вывод следующего запроса:
SELECT 'ALTER TABLE ' + OBJECT_NAME(fk.parent_object_id) + ' NOCHECK CONSTRAINT ' + fk.name
FROM sys.foreign_keys fk
INNER JOIN sys.foreign_key_columns AS fkc ON fk.OBJECT_ID = fkc.constraint_object_id
WHERE OBJECT_NAME (fk.referenced_object_id) = 'oldTable'
Чтобы переместить все данные в новую таблицу, с изменением поля попробуйте это:
INSERT INTO newTable
SELECT CONVERT(BIGINT, ID) AS ID, COL1, COL2, ..., COLN
FROM oldTable
Чтобы удалить старый стол:
DROP TABLE oldTable
Чтобы переименовать новую таблицу в старое имя:
sp_rename newTable, oldTable
Чтобы снова включить все ограничения для таблиц, которые ссылаются на oldTable, попробуйте выполнить вывод следующего запроса:
SELECT 'ALTER TABLE ' + OBJECT_NAME(fk.parent_object_id) + ' CHECK CONSTRAINT ' + fk.name
FROM sys.foreign_keys fk
INNER JOIN sys.foreign_key_columns AS fkc ON fk.OBJECT_ID = fkc.constraint_object_id
WHERE OBJECT_NAME (fk.referenced_object_id) = 'oldTable'
Надеюсь, это поможет ...