12
好我寫這個的後續行動Changing data type of column in SQL Server掛斷/禁用索引是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;
你運行了你的測試腳本嗎?您還可以查看文檔,該文檔告訴您在索引中使用的[用於更改列的限制](http://msdn.microsoft.com/en-us/library/ms190273.aspx)以及[禁用索引](http://msdn.microsoft.com/en-us/library/ms177406(v = sql.100).aspx)。希望很明顯,禁用某些東西並刪除(刪除)它是有區別的。 – Pondlife
@Pondlife感謝您的信息 – Sam