从存储过程中读取时间戳值
Posted
技术标签:
【中文标题】从存储过程中读取时间戳值【英文标题】:Read a timestamp value from stored procedure 【发布时间】:2014-06-30 10:02:15 【问题描述】:我正在尝试在 s-s-rS 报告中显示一些数据,但我遇到了问题。
对于信息,我必须使用现有的存储过程,而我必须使用的 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】:只需将您的专栏声明为varbinary(8)
:
Declare @Temp Table (id int, name varchar(50), RowVersion varbinary(8))
INSERT INTO @Temp
EXEC usp_MySP
见rowversion
:
不可为空的 rowversion 列在语义上等同于 binary(8) 列。可为空的 rowversion 列在语义上等同于 varbinary(8) 列。
【讨论】:
以上是关于从存储过程中读取时间戳值的主要内容,如果未能解决你的问题,请参考以下文章