【发布时间】:2013-11-04 15:51:09
【问题描述】:
我需要一些关于 SQL Server 和游标的说明:
我有一个名为 Order 的表:
OrderID Item Amount
1 A 10
1 B 1
2 A 5
2 C 4
2 D 21
3 B 11
我有第二个名为 Storage 的表:
Item Amount
A 40
B 44
C 20
D 1
对于每个 OrderID,我想检查是否有足够的商品可用。如果没有,我想返回一条错误消息。游标怎么能做到这一点?嵌套游标是解决这个问题的方法吗?我的主要问题是了解如何将 OrderID 作为 ID=1、2、3 等的实际“组”而不是逐行获取
【问题讨论】:
-
你真的需要 cursor 来解决你的问题吗?
-
你必须使用游标吗?一般来说,您应该使用像
Select OrderID, 'Error, not enough in store' from Order, Storage where Order.Item = Storage.Item and Order.Amount > Storage.Amount这样的集合基础方法 -
啊根本不需要光标!非常感谢 luigi,这似乎可以解决问题!:) 还有一个问题:我要使用存储过程来执行命令。一旦出现上述错误(库存不足),是否可以停止特定订单?
-
尝试 WHILE / BREAK 语句。
标签: sql sql-server cursor