缺省列值設置參數,使用SQL Server 2012的SQL - 在表
我有一個使用下面的腳本創建我的成員表中的列:
[EnableMemberWebAccess] [bit] NOT NULL DEFAULT ((1))
我希望此列如果同一表中的另一列是特定值,則只有1作爲默認值。我們稱之爲MemDesc列,並且當MemDesc ='Founder'時,EnableMemberWebAccess默認爲1,MemDesc!='Founder'時默認爲0。
任何幫助非常感謝!
缺省列值設置參數,使用SQL Server 2012的SQL - 在表
我有一個使用下面的腳本創建我的成員表中的列:
[EnableMemberWebAccess] [bit] NOT NULL DEFAULT ((1))
我希望此列如果同一表中的另一列是特定值,則只有1作爲默認值。我們稱之爲MemDesc列,並且當MemDesc ='Founder'時,EnableMemberWebAccess默認爲1,MemDesc!='Founder'時默認爲0。
任何幫助非常感謝!
可能沒有辦法實現可以在以後更改的默認值。要麼你有一個在開始時插入的值。然後您需要注意應用程序內的一致性:
ALTER TABLE *table* ADD COLUMN EnableMemberWebAccess bit NULL
UPDATE *table* SET *table.*EnableMemberWebAccess = CAST(CASE WHEN *table*.MemDesc = 'Founder' THEN 1 ELSE 0 END AS bit)
ALTER TABLE *table* ALTER COLUMN EnableMemberAccess bit NOT NULL
或者您必須使用計算列。這將不允許您更改列的值,除非更改所依賴的列的值。
計算列應該爲你工作:
ADD EnableMemberWebAccess AS cast((CASE WHEN MemDesc='Founder' THEN 1 ELSE 0 END) as bit)
它看起來像你需要寫一個觸發器:http://stackoverflow.com/questions/1744455/using-udf-for-default-value-of -a-column,http://stackoverflow.com/questions/30402167/use-a-udf-as-the-default-value-in-a-table-column-in-sql-server –