首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将此sql语句更正为Insert into、select、delete

问将此sql语句更正为Insert into、select、delete
EN

Stack Overflow用户
提问于 2011-12-11 04:34:04
回答 2查看 732关注 0票数 1
代码语言:javascript
复制
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>中购买的商品,继续结账(仅显示该会员商品,删除购物车商品)

EN

回答 2

Stack Overflow用户

发布于 2011-12-11 04:40:07

问题出在第二个"MemberID“上。它需要是一个常量,或者有一个与字段名不冲突的变量名。相关的SO post:How do you avoid column name conflicts?中展示了一些消除歧义的技术

票数 1
EN

Stack Overflow用户

发布于 2011-12-11 05:00:48

将您的传递数据存储到一个新声明的变量中,并将该变量用于任何地方,如下所示,这将很好地工作,谢谢

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8459664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档