mssql更新多行数据-这个不也是返回多个值吗?

UPDATE    T_发货单
SET   出厂日期='2011-9-5'         
WHERE     (提货单编号 >= 1000001) AND (提货单编号 <= 1000005)
我在执行上面语句时,老提示下面错误:
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。语句已终止。
返回值是有多个,但我怎么更新呢、、、是不是要用游标啊
ps:提货单编号不是主键,后来换成主键也不行,用什么in啊 any 啊也试了,不行。
但是我执行下面语句就没有问题
UPDATE    T_用户
SET              密码 = 1234
WHERE     (用户ID >= 100) AND (用户ID <= 105)
这个不也是返回多个值吗?
PS:用户ID是主键
搞不懂啊。。。。。

作者: AoSang_   发布时间: 2011-09-05

你确定错误的是这个sql?
UPDATE    T_发货单
SET   出厂日期='2011-9-5'         
WHERE     (提货单编号 >= 1000001) AND (提货单编号 <= 1000005)

这个sql 单独执行试试。应该没错误的。T_发货单 这个表不是视图吧。

作者: oswica   发布时间: 2011-09-06