時間戳記 (SQL Server Compact)
一種會公開自動在資料庫中產生之唯一二進位數字的資料類型。rowversion 和 timestamp 為資料類型同義字。rowversion 一般會當做版本戳記資料表資料列的機制使用。儲存大小為 8 個位元組。rowversion 資料類型是遞增的數字,而且不會保留日期或時間。若要記錄日期或時間,請使用 datetime 資料類型。
備註
rowversion 資料類型的特性如下:
資料表只能有一個 rowversion 資料行。
每次插入或更新包含 rowversion 資料行的資料列時,就會更新 rowversion 資料行中的值。這會讓 rowversion 資料行變成索引鍵 (特別是主索引鍵) 的不佳候選者。
rowversion 是一個唯讀的資料行,而且無法更新。
rowversion 在資料庫中是唯一的。
若要針對資料庫傳回目前的 rowversion 值,請使用 @@DBTS 命令。
重要
交易遭到復原或某些驗證失敗時,無法將 rowversion 計數器重設為舊的值。這是禁止的,因為如果同時發生其他交易,重設計數器可能會引起問題。若要尋找目前的 rowversion 值,您可以使用 @@DBTS 進行查詢。在 SQL Server 到 SQL Server Compact 間進行複寫 (反之亦然) 時,不會將 timestamp 資料行從一個資料庫複寫到另一個資料庫。這有助於確保 timestamp 的唯一性。複製的值可能會與某些資料列的現有值或後續值發生衝突。
範例
如果您使用的是 timestamp 資料類型,針對 SQL Server 和 SQL Server Compact 撰寫的查詢陳述式會有所不同。在 SQL Server 中,如果您使用的是 timestamp 資料類型,資料行名稱是選擇性的。不過,在 SQL Server Compact 中,資料行名稱為強制的。
如果您使用的是 rowversion 資料類型,則不論您使用 SQL Server 或 SQL Server Compact,都一定要指定資料行名稱。下列範例說明使用 timestamp 和 rowversion 關鍵字的查詢。
SQL Server |
SQL Server Compact 3.5 |
---|---|
查詢
|
Timestamp 查詢
|
Rowversion 查詢
|
Rowversion 查詢
|