从源插入多行

时间:2013-02-12 20:45:40

标签: sql sql-server-2008

运行SQL Server 2008。

每次执行此查询时,我都会创建一个临时表,并尝试找到一种方法,如果要输入多行,则添加多行。我收到了客户的收据信息。

create table #temp (col1 varchar(100),col2 varchar(100),col3 varchar(100))

insert into #temp (col1, col2, col3)values('Store ID', '01', '')
insert into #temp (col1, col2, col3)values('Product','Quantity','Amount')
insert into #temp (col1, col2, col3)values
(
  (select product from receipt where receiptnum = 1),
  (select quantity from receipt where receiptnum = 1),
  (select amount from receipt where receiptnum = 1),
)
select * from #temp

给我输出(这是我的整个数据结构,但同样的概念,所以我不会泛洪代码): enter image description here

我的问题是如果收据有超过1件产品,我怎么能这样做,而不知道提前。此数据显示所需的全部是收据编号和商店编号,因此我不知道要输入的行数。

从四处查看,似乎我将不得不使用Cursor,但我对游标的了解是没有的。

1 个答案:

答案 0 :(得分:1)

使用以下语句替换第三个insert语句会将所有记录插入到select中返回的临时表中。

insert into #temp
select product, quality, amount from receipt where receiptnum = 1