使用SQL Server 2012.
我的成员表中有一个使用以下脚本创建的列:
[EnableMemberWebAccess] [bit] NOT NULL DEFAULT ((1))
如果同一个表中的另一列是某个值,我希望此列只有1作为默认值。我们将此列称为MemDesc,我希望当MemDesc ='创始人'时,EnableMemberWebAccess默认为1,当MemDesc!='创始人&#39时默认为0 ;。
非常感谢任何帮助!
答案 0 :(得分:1)
可能无法实现之后可以更改的默认值。您有一个在开头插入的值。然后,您需要在应用程序中保持一致性:
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
或者您必须使用计算列。这不允许您更改列的值,除非您更改它所依赖的列的值。
答案 1 :(得分:-1)
计算栏应该适合你:
ADD EnableMemberWebAccess AS cast((CASE WHEN MemDesc='Founder' THEN 1 ELSE 0 END) as bit)