2012-03-20 83 views
16

我有MSSQL中有一列的值不能为null的表。但有更新 操作,我想将该列设置为空,当我更新其他列。有没有这样的方式来实现这一点,或者我应该重新创建表,允许列取空值。允许空值的SQL更新

回答

45

您应该允许空值的列:alter table T1 alter column C1 int null

0

您将需要更新架构。没有其他办法。这是限制的原因。如果数据不会丢失,则可以执行更改以避免完全重新创建表,即

1

你也许可以做这样的事情:

"ALTER TABLE table ADD COLUMN newcolumn VARCHAR(255)" 
    "UPDATE TABLE table SET newcolumn = oldcolumn" 
    "ALTER TABLE table DROP COLUMN oldcolumn" 
    "ALTER TABLE table ADD COLUMN oldcolumn VARCHAR(255)" 
    "UPDATE TABLE table SET oldcolumn = newcolumn"