[英]Unable to add a new column to SQL Server table with TIMESTAMP data type
我正在嘗試向數據類型為TIMESTAMP
的現有 SQL Server 表中添加一個新列。
這是我的腳本:
ALTER TABLE OrderDetails
ADD ModifiedTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
它不應該為空。 運行此腳本會導致錯誤
無法在時間戳數據類型的列上創建默認值
我嘗試在沒有DEFAULT CURRENT_TIMESTAMP
情況下執行它。 但后來它說
無法將值 NULL 插入到“ModifiedTime”列中
請問有什么建議嗎?
SQL Server 中的TIMESTAMP
與日期和時間完全無關(感謝 Sybase 把它搞砸了!)——它只是一個系統內部的二進制計數器(通常用於樂觀並發檢查)。 它也已被棄用,並將其重命名為ROWVERSION
,它的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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.