游标往临时表插入数据,最后一行没插进去
- SQL code
---------------临时表##tb--CREATE TABLE ##t (stockcode int)--drop table ##tDECLARE @CurrStockCode VARCHAR(50)SET @CurrStockCode = ''DECLARE @StockCode VARCHAR(50) DECLARE stock_cursor CURSORFOR SELECT STOCKCODE from (-----查询数据select * from stockinfo) as tbyybOPEN stock_cursorFETCH NEXT FROM stock_cursor INTO @StockCodeWHILE @@FETCH_STATUS=0 --上一个fetch是否读取到了数据 BEGIN IF @CurrStockCode <> @StockCode BEGIN IF LEN(@CurrStockCode) > 0 BEGIN --PRINT 'code' + @CurrStockCode insert into ##t select @CurrStockCode END SET @CurrStockCode = @StockCode END FETCH next FROM stock_cursor INTO @StockCode END CLOSE stock_cursorDEALLOCATE stock_cursor------------表和数据脚本create table stockinfo(stockcode int)insert into stockinfo values(1)insert into stockinfo values(2)insert into stockinfo values(3)insert into stockinfo values(4)insert into stockinfo values(5)
我貌似没分,好人帮忙解决下!
先谢谢了
[解决办法]
IF LEN(@CurrStockCode) >= 0试试,没用过游标,猜的
[解决办法]
OPEN stock_cursor
set @CurrStockCode = 0
FETCH NEXT FROM stock_cursor INTO @StockCode
[解决办法]
SET @CurrStockCode = ''
这里赋值问题
因为stockcode 是int 类型的
SET @CurrStockCode = '' 和int 比较的时候 空会被隐式转换为0
但是LEN('')=0
所以游标的第一次执行的时候 第二个条件不成立
[解决办法]
- SQL code
insert into ##t select @CurrStockCode改成insert into ##t select @StockCode