2010-05-22 48 views
2

在SQL Server 2008中,是否可以創建一個可插入值的列,但永遠不能更新?換句話說,該列可以插入一個初始值,但一旦包含非空值,它就永遠不會被更改。如果可能的話,我寧願不使用觸發器。如何創建無法更新的列?

謝謝 - 蘭迪

回答

2

不能列定義爲只讀,但你能不通過設置權限對列實現自己的目標,因此可以插入,但不是所有相關用戶/角色更新/你的數據庫中的組?

編輯:

我看錯了一下你的天賦,如果你需要讓別人「插入」一空,那就只只讀當輸入一個空值,那麼你可能會需要一個觸發 - 要麼阻止更新,要麼在輸入非空值後設置列的拒絕權限。

+1

+1。我沒有意識到可以在每個列級授予權限。 – 2010-05-22 19:15:06

1

您必須使用觸發器。

您可以在列本身上GRANT INSERT和DENY UPDATE,但這會阻止您能夠在初始INSERT之後從NULL更新爲某些內容。