尝试的命令:
CREATE TABLE [dbo].[vip](
[id] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[userid] [char](30) COLLATE Chinese_PRC_CI_AS NOT NULL,
[duration] AS (datediff(day,getdate(),[enddate]))
)
(事务序列号: 0x000F3D7100003C6F000200000001,命令 ID: 5)
错误消息:
· 列名 'enddate' 无效。 (源: MSSQLServer,错误号: 207)
获取帮助: http://help/207
· 列名 'enddate' 无效。 (源: MSSQLServer,错误号: 207)
获取帮助: http://help/207
直接放到订阅库执行也出错
CREATE TABLE [dbo].[vip](
[id] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[userid] [char](30) COLLATE Chinese_PRC_CI_AS NOT NULL,
[duration] AS (datediff(day,getdate(),[enddate]))
)
后来一想,原来是有个计算列,而计算列的源列enddate,没有选到发布列里面去。
本文记录了一次在SQL Server中创建带有计算列的表时遇到的问题及解决过程。作者尝试创建一个包含计算列duration的表,该列计算当前日期与结束日期(enddate)之间的天数差,但在执行时遇到了关于'enddate'列的错误。问题的原因在于计算列所依赖的'enddate'未被正确声明。
1487

被折叠的 条评论
为什么被折叠?



