Sqlserver:timestamp資料型別

weixin_34344677發表於2010-11-22

timestamp

timestamp 這種資料型別表現自動生成的二進位制數,確保這些數在資料庫中是唯一的。timestamp 一般用作給錶行加版本戳的機制。儲存大小為 8 位元組。

註釋

Transact-SQL timestamp 資料型別與在 SQL-92 標準中定義的 timestamp 資料型別不同。SQL-92 timestamp 資料型別等價於 Transact-SQL datetime 資料型別。

Microsoft® SQL Server™ 將來的版本可能會修改 Transact-SQL timestamp 資料型別的行為,使它與在標準中定義的行為一致。到那時,當前的 timestamp 資料型別將用 rowversion 資料型別替換。

Microsoft® SQL Server™ 2000 引入了 timestamp 資料型別的 rowversion 同義詞。在 DDL 語句中儘可能使用 rowversion 而不使用 timestamprowversion 受資料型別同義詞行為的制約。有關更多資訊,請參見資料型別同義詞

在 CREATE TABLE 或 ALTER TABLE 語句中,不必為 timestamp 資料型別提供列名:

CREATE TABLE ExampleTable (PriKey int PRIMARY KEY, timestamp)

如果沒有提供列名,SQL Server 將生成 timestamp 的列名。rowversion 資料型別同義詞不具有這樣的行為。指定 rowversion 時必須提供列名。

一個表只能有一個 timestamp 列。每次插入或更新包含 timestamp 列的行時,timestamp 列中的值均會更新。這一屬性使 timestamp 列不適合作為鍵使用,尤其是不能作為主鍵使用。對行的任何更新都會更改 timestamp 值,從而更改鍵值。如果該列屬於主鍵,那麼舊的鍵值將無效,進而引用該舊值的外來鍵也將不再有效。如果該表在動態遊標中引用,則所有更新均會更改遊標中行的位置。如果該列屬於索引鍵,則對資料行的所有更新還將導致索引更新。

不可為空的 timestamp 列在語義上等價於 binary(8) 列。可為空的 timestamp 列在語義上等價於 varbinary(8) 列。

 

@@DBTS

為當前資料庫返回當前 timestamp 資料型別的值。這一 timestamp 值保證在資料庫中是唯一的。

語法

@@DBTS

返回型別

varbinary

註釋

@@DBTS 返回當前資料庫最後所使用的時間戳值。當帶有 timestamp 列的一行被插入或更新時,會產生一個新的時間戳值。

相關文章