共计 1673 个字符,预计需要花费 5 分钟才能阅读完成。
本篇文章给大家分享的是有关 SQLServer 数据库中有哪些 timestamp 数据类型,丸趣 TV 小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着丸趣 TV 小编一起来看看吧。
SQLServer 数据库 timestamp 数据类型有哪些
通俗的解释:我们知道数字类型有个“标识”属性,设置好“标识种子”、“标识递增量”,每增加一条记录时,这个字段的值就会在最近的一个标识值基础上自动增加,这样我们可以知道哪些记录是先添加的,哪些记录是后添加的,但是我们无法知道哪些记录修改过。timestamp 这个类型的字段呢,每增加一条记录时,它会在最近的一个时间戳基础上自动增加,当修改某条记录时,它也会在最近的一个时间戳基础上自动增加,所以我们就知道哪些记录修改过了。timestamp 这种数据类型表现自动生成的二进制数,确保这些数在数据库中是唯一的。timestamp 一般用作给表行加版本戳的机制。存储大小为 8 字节。
注释:
Transact-SQLtimestamp 数据类型与在 SQL-92 标准中定义的 timestamp 数据类型不同。SQL-92timestamp 数据类型等价于 Transact-SQLdatetime 数据类型。
Microsoft®SQLServer™将来的版本可能会修改 Transact-SQLtimestamp 数据类型的行为,使它与在标准中定义的行为一致。到那时,当前的 timestamp 数据类型将用 rowversion 数据类型替换。
Microsoft®SQLServer™2000 引入了 timestamp 数据类型的 rowversion 同义词。在 DDL 语句中尽可能使用 rowversion 而不使用 timestamp。rowversion 受数据类型同义词行为的制约。有关更多信息,请参见数据类型同义词。
在 CREATETABLE 或 ALTERTABLE 语句中,不必为 timestamp 数据类型提供列名:CREATETABLEExampleTable(PriKeyintPRIMARYKEY,timestamp),假如没有提供列名,SQLServer 将生成 timestamp 的列名。rowversion 数据类型同义词不具有这样的行为。指定 rowversion 时必须提供列名。
SQLServer 数据库 timestamp 数据类型有哪些
一个表只能有一个 timestamp 列。每次插入或更新包含 timestamp 列的行时,timestamp 列中的值均会更新。这一属性使 timestamp 列不适合作为键使用,尤其是不能作为主键使用。对行的任何更新都会更改 timestamp 值,从而更改键值。假如该列属于主键,那么旧的键值将无效,进而引用该旧值的外键也将不再有效。假如该表在动态游标中引用,则所有更新均会更改游标中行的位置。假如该列属于索引键,则对数据行的所有更新还将导致索引更新。
不可为空的 timestamp 列在语义上等价于 binary(8) 列。可为空的 timestamp 列在语义上等价于 varbinary(8) 列。
MicrosoftSQLServer 用两个 4 字节的整数内部存储 datetime 数据类型的值。第一个 4 字节存储 basedate(即 1900 年 1 月 1 日) 之前或之后的天数。基础日期是系统参考日期。不允许早于 1753 年 1 月 1 日的 datetime 值。另外一个 4 字节存储以午夜后毫秒数所代表的每天的时间。
@@DBTS(SELECT@@DBTS),为当前数据库返回当前 timestamp 数据类型的值。这一 timestamp 值保证在数据库中是唯一的。
语法如下:@@DBTS 返回类型 varbinary
注释:
@@DBTS 返回当前数据库最后所使用的时间戳值。当带有 timestamp 列的一行被插入或更新时,会产生一个新的时间戳值。
以上就是 SQLServer 数据库中有哪些 timestamp 数据类型,丸趣 TV 小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注丸趣 TV 行业资讯频道。