SQLServer数据库中的时间戳数据类型有哪些?

分类:编程技术 时间:2024-02-20 15:28 浏览:0 评论:0
0
本文和大家分享一下SQL Server数据库中的时间戳数据类型。小编觉得还是比较实用的,所以分享给大家学习一下。希望您读完本文后有所收获。话不多说,直接关注即可。我们一起来看看吧。

【SQL Server数据库中的时间戳数据类型有哪些?

通俗解释:我们知道数值类型有一个“标识”属性。设置“识别种子”和“识别增量”。当添加一条记录时,该字段的值会根据最近的标识值自动增加,这样我们就可以知道哪些记录是先添加的,哪些记录是后添加的,但我们无法知道哪些记录被修改了。对于时间戳类型的字段,每增加一条记录,都会根据最近的时间戳自动增加。当一条记录被修改时,也会根据最新的自动增加时间戳,这样我们就知道哪些记录被修改了。时间戳数据类型表示自动生成的二进制数字,确保这些数字在数据库中是唯一的。时间戳通常用作对表行进行版本标记的机制。存储大小为8字节。

注释:

Transact-SQL 时间戳数据类型与 SQL-92 标准中定义的时间戳数据类型不同。 SQL-92timestamp 数据类型与 Transact-SQL 日期时间数据类型等效。

Microsoft® SQL Server™ 的未来版本可能会修改 Transact-SQLtimestamp 数据类型的行为,以使其与标准中定义的行为一致。此时,当前时间戳数据类型将替换为 rowversion 数据类型。

Microsoft®SQLServer™2000 引入了时间戳数据类型的 rowversion 同义词。尽可能在 DDL 语句中使用 rowversion 而不是时间戳。 Rowversion 受数据类型同义词行为的影响。形式矿石信息,请参阅数据类型同义词。

在 CREATETABLE 或 ALTERTABLE 语句中,不需要提供时间戳数据类型的列名:CREATETABLEExampleTable(PriKeyintPRIMARYKEY, timestamp)。如果没有提供列名,SQL Server 将生成时间戳列名。 Rowversion 数据类型同义词没有这样的行为。指定 rowversion 时需要列名称。

SQL Server数据库中的时间戳数据类型有哪些?

一张表只能有一个时间戳列。每次插入或更新包含时间戳列的行时,时间戳列中的值都会更新。此属性使得时间戳列不适合用作键,尤其是用作主键。对行的任何更新都会更改时间戳值,从而更改键值。如果该列属于主键,则旧键值将无效,并且引用旧值的外键将不再有效。如果该表是参考在动态游标中,所有更新都会更改游标中行的位置。如果该列属于索引键,则对数据行的所有更新也会引起索引更新。

不可为空的时间戳列在语义上等同于binary(8) 列。可空时间戳列在语义上等同于 varbinary(8) 列。

Microsoft SQL Server 使用两个 4 字节整数在内部存储日期时间数据类型值。前 4 个字节存储基准日期(即 1900 年 1 月 1 日)之前或之后的天数。基准日期是系统参考日期。不允许使用早于 1753 年 1 月 1 日的日期时间值。另外 4 个字节存储午夜后的时间(以毫秒为单位)。

@@DBTS(SELECT@@DBTS),返回当前数据库的当前时间戳数据类型的值。该时间戳值保证在数据库中是唯一的。

语法如下:@@DBTS 返回类型varbinary

注释:

@@DBTS 返回当前数据库使用的最后一个时间戳值。当插入或更新具有时间戳列的行时,会生成新的时间戳值。

以上是SQLServer数据库中的时间戳数据类型。小编相信有些知识点在我们日常工作中可能会看到或者用到。希望您能从本文中了解更多信息。更多详情请关注行业资讯频道。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > SQLServer数据库中的时间戳数据类型有哪些?

用户评论