我正在努力开展一个项目,我需要将数据(通过一些小的转换)从一个数据库传输到另一个数据库。当我点击我的第一个时间戳列时,一切都很顺利......
似乎SQL Server不希望我对这种类型的列使用显式值,而是希望生成自己的列。
如果有办法,使用T-SQL,我可以将这些数据从一个表传送到另一个表吗?
答案 0 :(得分:4)
注意:不推荐使用名称时间戳,新的(更准确的)名称是rowversion。
两个答案:
否:类型为rowversion的SQL Server列始终由数据库服务器生成和设置。
是:如果在目标表中使用其他数据类型。从rowversion列读取的值可以存储在varbinary列中。因此,您可以在新表中创建一个varbinary列来保存旧表中的值。当然,继续这个varbinary列不会像rowversion列那样自动更新。
答案 1 :(得分:3)
没有
我刚刚使用着名的数据比较工具进行了检查,该工具说它可以比较它们但不同步它们。
答案 2 :(得分:0)
我不担心源数据库和目标数据库之间的列内容不同。
我假设“数据”你几乎意味着实际商业用户需要或想要的东西。
时间戳列(或行版本或其他)是内部控制数据,不应对业务用户带任何值。
与函数TSEQUALS()一起使用以确定读取和更新之间的行是否已更改。将所有列添加到where子句的捷径。