感谢各位的回答,可是我的游标没有定义成read only的 只是默认类型的。表也不是只读表。DECLARE cur1 CURSOR FOR SELECT TOP convert(varchar,@MoveUnit) t.UserNumber, t.ExpressTicketNumber FROM @FromTableName AS t WITH(UPDLOCK) INNER JOIN VI_T_EtTicketInfo AS v ON v.UserNumber = t.UserNumber AND v.ExpressTicketNumber = t.ExpressTicketNumber WHERE v.DepartureDate < convert(varchar,convert(datetime,@DateCondValue), 112) 之后是用抽出数据对其他的表进行更新和插入 最后 DELETE FROM @FromTableName WHERE CURRENT OF cur1罗嗦了一大堆,麻烦各位了。
在游标中的只读表上,不能指定 UPDLOCK 或 TABLOCKX。
SELECT TOP convert(varchar,@MoveUnit)
t.UserNumber,
t.ExpressTicketNumber
FROM @FromTableName AS t WITH(UPDLOCK)
INNER JOIN VI_T_EtTicketInfo AS v ON v.UserNumber = t.UserNumber
AND v.ExpressTicketNumber = t.ExpressTicketNumber
WHERE v.DepartureDate < convert(varchar,convert(datetime,@DateCondValue), 112)
之后是用抽出数据对其他的表进行更新和插入
最后 DELETE FROM @FromTableName WHERE CURRENT OF cur1罗嗦了一大堆,麻烦各位了。