【发布时间】:2014-07-15 20:20:30
【问题描述】:
我有一个存在于两个数据库中的表。
在一个数据库中,有一个表,其列名为ROW_VERSION,其类型为TIMESTAMP NOT NULL。
在第二个数据库中,同一个表具有相同类型的TIMESTAMP 列,但它的类型是TIMESTAMP NULL。
我想将第一个数据库中的列更改为可为空。这将使我能够更轻松地在两个数据库之间进行同步。
但是当我运行这个时:
ALTER TABLE [MyTable]
ALTER COLUMN ROW_VERSION TIMESTAMP NULL
我得到错误:
无法将列“ROW_VERSION”更改为数据类型时间戳。
它已经是一个时间戳。 我只需要将其设为可空即可。有没有办法做到这一点?
【问题讨论】:
-
列是主键吗?
-
@DMason - 不,不是。
-
如果你在你的 tsql 中把
timestamp换成rowversion,那会起作用吗?我相信这两种数据类型是等价的......时间戳已被弃用,并且在未来的某个地方,它不会出现在 SQL Server 的未来版本中。 -
@KrisGruttemeyer,您提到的 SO 问题是针对 MySQL 的。
-
@DMason - 我在使用
rowversion时收到相同的错误消息。
标签: sql-server tsql sql-server-2012