簡體   English   中英

無法向具有 TIMESTAMP 數據類型的 SQL Server 表添加新列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM