读书人

游标往临时表插入数据最后一行没插进

发布时间: 2012-09-12 09:21:30 作者: rapoo

游标往临时表插入数据,最后一行没插进去

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 

读书人网 >SQL Server

热点推荐