sql-更改表以添加默认值基于其他值的列

时间:2012-01-27 11:25:06

标签: sql sql-server-2008

我的sql表:

  CREATE TABLE [dbo].[PayrollParameter]
  (
     [PayrollParameterID]  [CHAR](36) NOT NULL,
     [Description]         [NVARCHAR](50) NOT NULL,
     [NumberOfDaysInMonth] [INT] NOT NULL,
     [IsFixedDaysInMonth]  [BIT] NOT NULL,
     CONSTRAINT [PK_PayrollParameter] PRIMARY KEY CLUSTERED (
     [PayrollParameterID] ASC )WITH (pad_index = OFF, statistics_norecompute =
     OFF, ignore_dup_key = OFF, allow_row_locks = on, allow_page_locks = on) ON
     [PRIMARY]
  )
 ON [PRIMARY]
 GO 

数据库已包含记录;我想更改表格,将IsFixedDaysInMonth的默认值设置为Checked if NumberOfDaysInMonth!=0

我该怎么做?

1 个答案:

答案 0 :(得分:2)

CREATE DEFAULT需要一个常量值作为默认值

  

表达式只包含常量值(不能包含   任何列或其他数据库对象的名称。)

我知道做你想做的事的唯一方法是使用触发器或使用存储过程插入。