SQL Azure具有每个表具有聚簇索引所需的依赖关系。我有两个彼此具有FK依赖关系的表,其中一个表使用了。需要将该数据类型从VARCHAR更改为INT。这要求暂时删除索引和FK关系以修复任何潜在危险的数据,然后将列更改为相同的数据类型,然后恢复FK和索引。
如何在不抛出SQL Azure错误的情况下完成这项工作?
答案 0 :(得分:0)
没有特别在SQL Azure 上尝试过这个,但我建议将所有元数据更改放在一个事务中,并且为了安全起见在两个表上获得独占锁:
BEGIN TRANSACTION
SELECT 1 FROM FirstTable WITH (TABLOCKX)
SELECT 2 FROM SecondTable WITH (TABLOCKX)
-- drop FKs, alter tables etc.
COMMIT TRANSACTION