我正在尝试向现有 SQL Server 表中添加一个新列,数据类型为TIMESTAMP.
这是我的脚本:
ALTER TABLE OrderDetails
ADD ModifiedTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)
它不应该为空。运行此脚本会导致错误
无法在时间戳数据类型的列上创建默认值
我尝试在没有DEFAULT CURRENT_TIMESTAMP. 但后来它说
无法将值 NULL 插入到“ModifiedTime”列中
请问有什么建议吗?
TIMESTAMP在 SQL Server 中与日期和时间完全无关(感谢 Sybase 把它搞砸了!) - 它只是一个系统内部的二进制计数器(通常用于乐观并发检查)。它也已被弃用,并重新命名ROWVERSION,这对它的含义更加清晰。
对于日期和时间 - 使用DATE(如果您只需要日期 - 不需要时间),或DATETIME2(n) 数据类型:
ALTER TABLE OrderDetails
ADD ModifiedTime DATETIME2(3) NOT NULL DEFAULT CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)
有关日期和时间数据类型和函数的更多详细信息,请参阅Microsoft 官方文档
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |