2015-11-03 31 views
2

在SQL Server中,如何使用T-SQL關閉計算列的PERSISTED屬性?我可以使用Management Studio GUI執行此操作,但不知道如何使用T-SQL執行此操作。SQL Server - 如何刪除計算列上的IsPersisted屬性

+0

您可以通過單擊「腳本」按鈕而不是保存來生成GUI使用的實際腳本。但是,您不能更改PERSISTED列,只能刪除它並重新創建它。圖形用戶界面要麼執行該操作,要麼實際刪除並重建整個表格 –

回答

3

如果你想下降從列PERSISTED財產,那麼你可以嘗試以下方法:

ALTER TABLE dbo.MyTable ALTER COLUMN MyColumn DROP PERSISTED; 

根據MSDN

[{ADD | DROP}堅持]

Specifies that the PERSISTED property is added to or dropped 
from the specified column. The column must be a computed column that is 
defined with a deterministic expression. 

相關:您也可以看看this文章阿龍貝特朗。

1

您可以通過以下步驟,這個做到這一點:

  1. 在具有相同的數據類型,你的堅持列的表格創建一個新列。
  2. 使用持久列值更新新列。
  3. 從您的表中刪除持久列。
  4. 將新列重新命名爲持久列。
+0

這個引用是關於不同的事情,不管DDL執行時統計信息是否可用。你根本不能改變一個持久化的列。 –

+0

@PanagiotisKanavos: - 是的。刪除了! –