怎么在sql sever里面创建一个存储过程,实现一个insert into语句插入多条记录?

qq_31926787 2018-04-10 04:54:22
insert into OrderDetail(ProductID,Count,OrderNumber) values ((select ProductID from Cart WHERE CartID=@loginname),(select Quantity from Cart WHERE CartID=@loginname),@ordernumber)

像这种的,执行的时候就会提示错误:子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。

原因是我从CART表里面取得记录不止一条,但是不知道该怎么写才能避免错误。
有的还说是触发器的原因,但是不知道触发器该怎么改写,求大神赐教。
...全文
1137 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
听雨停了 2018-04-11
  • 打赏
  • 举报
回复
引用 2 楼 qq_31926787 的回复:
[quote=引用 1 楼 qq_37170555 的回复:]

insert into OrderDetail(ProductID,Count,OrderNumber) 
select ProductID,Quantity,@ordernumber from Cart WHERE CartID=@loginname
这样试试看。头一次见你上面这样的写法。
请问我的ordernumber不是cart表里面的该怎么写啊[/quote] 就上面这样写就可以啦
卖水果的net 2018-04-10
  • 打赏
  • 举报
回复
引用 2 楼 qq_31926787 的回复:
[quote=引用 1 楼 qq_37170555 的回复:]

insert into OrderDetail(ProductID,Count,OrderNumber) 
select ProductID,Quantity,@ordernumber from Cart WHERE CartID=@loginname
这样试试看。头一次见你上面这样的写法。
请问我的ordernumber不是cart表里面的该怎么写啊[/quote] @ordernumber 在这里,理解成一个常量。
qq_31926787 2018-04-10
  • 打赏
  • 举报
回复
引用 1 楼 qq_37170555 的回复:

insert into OrderDetail(ProductID,Count,OrderNumber) 
select ProductID,Quantity,@ordernumber from Cart WHERE CartID=@loginname
这样试试看。头一次见你上面这样的写法。
请问我的ordernumber不是cart表里面的该怎么写啊
听雨停了 2018-04-10
  • 打赏
  • 举报
回复

insert into OrderDetail(ProductID,Count,OrderNumber) 
select ProductID,Quantity,@ordernumber from Cart WHERE CartID=@loginname
这样试试看。头一次见你上面这样的写法。

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧