INSERT INTO Checkout(ProductID, MemberID, Quantity)
SELECT ProductID, MemberID, Quantity
FROM Cart
WHERE (MemberID = MemberID)
DELETE FROM CART WHERE (MemberID = MemberID)sql语句在Select,WHERE部分之前是有效的,但是一旦我添加了delete语句,错误(语法错误,查询表达式中缺少运算符)就出来了。第二个MemberID是我为第一个MemberID参数指定的值。请帮我解决这个问题,因为在我将数据从第一个表转移到第二个表之后,我需要删除第一个表中的数据。
编辑感谢您的所有建议,现在我意识到for (MemberID = MemberID)会将整个表导入到新表中,该语句还会删除整个表的内容。我可以做些什么来确保sql语句只删除particulars项?
存储在购物车数据库中的Main Page>Member login page>Buy something>Item (带有会员id)>仅显示特定会员在购物cart>中购买的商品,继续结账(仅显示该会员商品,删除购物车商品)
发布于 2011-12-11 04:40:07
问题出在第二个"MemberID“上。它需要是一个常量,或者有一个与字段名不冲突的变量名。相关的SO post:How do you avoid column name conflicts?中展示了一些消除歧义的技术
发布于 2011-12-11 05:00:48
将您的传递数据存储到一个新声明的变量中,并将该变量用于任何地方,如下所示,这将很好地工作,谢谢
DECLARE @PassedMemberID INT
SET @PassedMemberID = MemberID --Store your passing MemberID here for later use
INSERT INTO Checkout(ProductID, MemberID, Quantity)
SELECT ProductID, MemberID, Quantity
FROM Cart
WHERE (MemberID = @PassedMemberID)
DELETE FROM CART WHERE (MemberID = @PassedMemberID)https://stackoverflow.com/questions/8459664
复制相似问题