我试图在SSRS报告中显示一些数据,但我遇到了问题。
对于转发,我必须使用现有的存储过程,我必须使用的SQL用户只能执行存储过程。
我想要做的是创建临时表,在其上插入数据然后处理它..
但问题是我必须使用的SP之一返回TimeStamp(RoVersion)类型的字段,而且我无法读取从该存储过程返回的数据。
这是一个例子:
Declare @Temp Table (id int, name varchar(50), RowVersion TimeStamp)
INSERT INTO @Temp
EXEC usp_MySP
我遇到的错误是:
"无法在时间戳列中插入显式值。将INSERT与列列表一起使用以排除时间戳列,或将DEFAULT插入时间戳列。"
你有什么想法解决这个问题吗?或者甚至以其他方式做到这一点?
我正在使用SQL Server 2008。
答案 0 :(得分:1)
只需将您的专栏声明为varbinary(8)
:
Declare @Temp Table (id int, name varchar(50), RowVersion varbinary(8))
INSERT INTO @Temp
EXEC usp_MySP
请参阅rowversion
:
不可侵犯的 rowversion 列在语义上等同于二进制(8)列。可空的 rowversion 列在语义上等同于 varbinary(8)列。