我正在写这篇文章以跟进更改 SQL Server 中列的数据类型
我之前的问题是我是否需要删除所有索引和约束,并且回答我确实需要删除它们。
所以当我在网上浏览这个主题时,我遇到了一些帖子说最好禁用和启用索引,而不是删除和重新创建它们。
那么哪种方法更好呢?禁用索引是否也允许您更改列的数据类型?两者有什么区别?
删除和创建索引的语句
DROP INDEX UX_1_COMPUTATION ON dbo.Computation
ALTER TABLE dbo.Computation
ALTER COLUMN ComputationID NVARCHAR(25) not null
CREATE UNIQUE INDEX UX_1_COMPUTATION ON dbo.Computation (ComputationID);
带有禁用和启用索引的语句
ALTER INDEX [UX_1_COMPUTATION ] ON dbo.Computation DISABLE
ALTER TABLE dbo.Computation
ALTER COLUMN ComputationID NVARCHAR(25) not null
ALTER INDEX [UX_1_COMPUTATION ] ON dbo.Computation REBUILD;