gpt4 book ai didi

sql-server - 将时间戳数据类型更改为 rowversion

转载 作者:行者123 更新时间:2023-12-04 05:48:46 26 4
gpt4 key购买 nike

我不确定是否有必要。我有一个 sql server 2008 数据库,其中所有表都有一个时间戳列。最好将时间戳数据类型更改为 rowversion,以便可以轻松升级到 future 的 sql server 版本吗?如果是这样,在不重新创建表的情况下将所有时间戳列更改为 rowversion 的最佳方法是什么?

最佳答案

随意更改您的脚本以显示 ROWVERSION 而不是 TIMESTAMP,但是尝试对表进行任何更改是没有意义的。即使在 SQL Server 2012 中,虽然他们很久以前就发誓要消除混淆名称,但即使您创建这样的表也是如此:

USE tempdb;
GO
CREATE TABLE dbo.foo
(
bar INT,
rv ROWVERSION
);

目录 View 和内部的所有其他内容仍然将其视为 TIMESTAMP:

SELECT c.name, [type] = TYPE_NAME(c.system_type_id)
FROM sys.columns AS c
WHERE [object_id] = OBJECT_ID('dbo.foo');

结果:

name type
---- ---------
foo int
rv timestamp

所以我真的不认为您(或任何人)可以做任何事情来更好地为 future 的版本做好准备 - Microsoft 将有很多的客户与您在同一条船上,这可能就是为什么你实际上没有看到这种类型的快速驱逐。他们可能仍在制定真正消除它的计划(他们在选择名称方面做得更好,DATETIME2 恕我直言除外)。

我最好的建议是确保您的脚本和对象都使用 ROWVERSION,这样您就不会被吓到。这可能意味着手动编辑您从 Management Studio、目录 View 甚至第 3 方工具生成的脚本。

关于sql-server - 将时间戳数据类型更改为 rowversion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10349301/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com