无法将TIMESTAMP数据类型的新列添加到SQL Server表中



我正在尝试向数据类型为TIMESTAMP的现有SQL Server表添加一个新列。

这是我的脚本:

ALTER TABLE OrderDetails 
ADD ModifiedTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

它不应为null。运行此脚本会导致错误

不能在数据类型为时间戳的列上创建默认值

我尝试在没有DEFAULT CURRENT_TIMESTAMP的情况下执行它。但后来它说

无法将值NULL插入列"ModifiedTime">

有什么建议吗?

SQL Server中的

TIMESTAMP与日期和日期完全无关;时间(感谢Sybase把它搞砸了!(-它只是一个系统内部的二进制计数器(通常用于opmistic并发检查(。它也被弃用了,并被重命名为ROWVERSION,这更清楚地表明了它是什么

对于日期&时间-使用DATE(如果您只需要日期-不需要时间(或DATETIME2(n)数据类型:

ALTER TABLE OrderDetails 
ADD ModifiedTime DATETIME2(3) NOT NULL DEFAULT CURRENT_TIMESTAMP

有关日期和日期的更多详细信息,请参阅Microsoft官方文档;时间数据类型和功能

请尝试此处提供的以下解决方案:https://www.sql-server-performance.com/defaults-not-created-timestamp/

ALTER TABLE OrderDetails ADD ModifiedTime TIMESTAMP NOT NULL DEFAULT 0

相关内容

  • 没有找到相关文章