【发布时间】:2010-04-04 13:02:45
【问题描述】:
我有一个存储过程
DECLARE cursor FOR SELECT [FooData] From [FooTable];
OPEN cursor ;
FETCH NEXT FROM cursor INTO @CurrFooData;
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @CurrFooData AS FooData;
INSERT INTO Bar (BarData) VALUES(@CurrFooData);
FETCH NEXT FROM cursor INTO @CurrFooData;
END;
CLOSE cursor
DEALLOCATE cursor
但结果我有很多表,而不是一张。如何返回一个包含 'FooData' 列和所有 '@CurrFooData' 行的表?
【问题讨论】:
-
这个例子没问题,但是如果select语句和insert中的列列表不一样呢?
-
点赞:DECLARE cursor FOR SELECT [FooData1], [FooData2] From [FooTable];打开光标; FETCH NEXT FROM cursor INTO @CurrFooData1, @CurrFooData2;而@@FETCH_STATUS = 0 开始选择 @CurrFooData1 作为 FooData1,@CurrFooData2 作为 FooData2;插入条形(BarData)值(@CurrFooData1); FETCH NEXT FROM cursor INTO @CurrFooData;结尾; CLOSE 游标 DEALLOCATE 游标
-
问答毫无意义:你为什么要这么做?
标签: sql-server stored-procedures select resultset