从存储过程中读取时间戳值

时间:2014-06-30 10:02:16

标签: sql-server stored-procedures

我试图在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。

1 个答案:

答案 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)列。