首页 新闻 会员 周边 捐助

SQLSERVER 2008 根据timestamp类型更新,返回影响行为0的问题

0
[已解决问题] 解决于 2012-07-20 12:52

由于要对数据库做并发控制,所以在A表中加了version字段,类型为timestamp类型。每次将verision作为更新条件,都返回受影响行数为0,求解,

eg:

1、UPDATE [hz2].[dbo].[book] SET [NAME]='TEST' where [version] = CAST('0x0000000000000FA2' as binary(8))
2、UPDATE [hz2].[dbo].[book] SET [NAME]='TEST' where [version] = CAST('0x0000000000000FA2' as timestamp)

 

ps: 0x0000000000000FA2这条记录在数据库是存在的。急啊。 求解。

爱吃皮皮虾的主页 爱吃皮皮虾 | 初学一级 | 园豆:54
提问于:2012-07-18 09:30
< >
分享
最佳答案
0

为什么要进行CAST操作,试试下面的SQL:

UPDATE [hz2].[dbo].[book] SET [NAME]='TEST' where [version] = '0x0000000000000FA2'
奖励园豆:5
dudu | 高人七级 |园豆:30948 | 2012-07-18 10:38

version是timestamp类型的。这样的会出现"不允许从数据类型 varchar 到 timestamp 的隐式转换。请使用 CONVERT 函数来运行此查询。"错误。

爱吃皮皮虾 | 园豆:54 (初学一级) | 2012-07-18 10:41

@小码哥: 不好意思,写错了,应该去掉单引号

UPDATE [hz2].[dbo].[book] SET [NAME]='TEST' where [version] = 0x0000000000000FA2
dudu | 园豆:30948 (高人七级) | 2012-07-18 10:42

@dudu: wonderful!搞定。多谢了。

爱吃皮皮虾 | 园豆:54 (初学一级) | 2012-07-20 12:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册