Sqlserver timestamp數據類應用引見。本站提示廣大學習愛好者:(Sqlserver timestamp數據類應用引見)文章只能為提供參考,不一定能成為您想要的結果。以下是Sqlserver timestamp數據類應用引見正文
在SQL Server中聯機叢書是如許說的:
SQL Server timestamp 數據類型與時光和日期有關。SQL Server timestamp 是二進制數字,它注解數據庫中數據修正產生的絕對次序。完成 timestamp 數據類型最後是為了支撐 SQL Server 恢復算法。每次修正頁時,都邑應用以後的 @@DBTS 值對其做一次標志,然後 @@DBTS 加1。如許做足以贊助恢復進程肯定頁修正的絕對順序,然則 timestamp 值與時光沒有任何干系。
我用口水話說明一下便於懂得:
我們曉得數字類型有個“標識”屬性,設置好“標識種子”、“標識遞增量”,每增長一筆記錄時,這個字段的值就會在比來的一個標識值基本上主動增長,如許我們可以曉得哪些記載是先添加的,哪些記載是後添加的,然則我們沒法曉得哪些記載修正過。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 而不應用 timestamp。rowversion 受數據類型同義詞行動的制約。有關更多信息,請拜見數據類型同義詞。
在 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) 列。
Microsoft SQL Server 用兩個 4 字節的整數外部存儲 datetime 數據類型的值。第一個 4 字節存儲 base date(即 1900 年 1 月 1 日)之前或以後的天數。基本日期是體系參考日期。不許可早於 1753 年 1 月 1 日的 datetime 值。別的一個 4 字節存儲以午夜後毫秒數所代表的天天的時光。
@@DBTS(SELECT @@DBTS)
為以後數據庫前往以後 timestamp 數據類型的值。這一 timestamp 值包管在數據庫中是獨一的。
語法
@@DBTS
前往類型
varbinary
正文
@@DBTS
前往以後數據庫最初所應用的時光戳值。當帶有 timestamp 列的一行被拔出或更新時,會發生一個新的時光戳值。