如何编写sql来设置sql server 2005中更改列的默认值?
我有一个表 [Product],其列 [CreateTime] datetime null,并且已经有一些数据。
如何将 [CreateTime] 列的默认值设置为 getdate(),并使新添加的数据的 [CreateTime] 列具有默认值 getdate()。
I have a table [Product] with a column [CreateTime] datetime null, and is has some data already.
How can I set the column [CreateTime] 's default value to getdate(), and make the new added data to have a default value getdate() for column [CreateTime].
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您无法更改默认值 - 您需要先删除它,然后重新创建它。
为了删除它,您需要知道它的名称,然后使用
完成后,您可以添加一个新的默认约束,并且为了将其应用到现有行,请使用“WITH VALUES”部分:
哎呀- 抱歉,“WITH VALUES”似乎仅在您创建表时创建 DEFAULT 约束或者添加列时才起作用 - 它似乎不会应用于现有列。
在这种情况下,您只需在 ALTER TABLE 语句后添加如下内容:
这也应该可以解决问题!
马克
You cannot change a default - you will need to first drop it, and then recreate it.
In order to drop it, you need to know its name, and then use
Once you've done that, you can add a new default constraint, and in order to apply it to existing rows, use the "WITH VALUES" part:
Oops - sorry, the "WITH VALUES" only seems to work if you create a DEFAULT constraint at the time you create the table, or if you add the column - it doesn't seem to get applied to an existing column.
In this case you would just have to follow your ALTER TABLE statement with something like this:
That should do the trick, too!
Marc