请问在使用游标时如何将某列的值(ID)赋给变量(@AAA)?
DECLARE @AAA int
DECLARE Employee_Cursor CURSOR FOR
SELECT CITY_ID from T_CITY WHERE UP_CITY_ID = 1
OPEN Employee_Cursor
FETCH NEXT FROM Employee_Cursor
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @AAA
FETCH NEXT FROM Employee_Cursor
END
CLOSE Employee_Cursor
DEALLOCATE Employee_Cursor

解决方案 »

  1.   

    FETCH NEXT FROM Employee_Cursor into @AAA
      

  2.   

    DECLARE @AAA int
    DECLARE Employee_Cursor CURSOR FORSELECT CITY_ID from T_CITY WHERE UP_CITY_ID = 1
    OPEN Employee_Cursor
    FETCH FIRST FROM Employee_Cursor INTO @AAA
    WHILE @@FETCH_STATUS = 0
    BEGIN
    PRINT @AAA
    FETCH NEXT FROM Employee_Cursor INTO @AAA
    END
    CLOSE Employee_Cursor
    DEALLOCATE Employee_Cursor
      

  3.   

    DECLARE @AAA int 
    DECLARE Employee_Cursor CURSOR FOR 
    SELECT CITY_ID from T_CITY WHERE UP_CITY_ID = 1 
    OPEN Employee_Cursor 
    declare @AAA varchar(10)
    FETCH NEXT FROM Employee_Cursor into  @AAA

    WHILE @@FETCH_STATUS = 0 
    BEGIN 
    PRINT @AAA 
    FETCH NEXT FROM Employee_Cursor 
    END 
    CLOSE Employee_Cursor 
    DEALLOCATE Employee_Cursor
      

  4.   

    DECLARE @AAA int 
    DECLARE Employee_Cursor CURSOR FOR 
    SELECT CITY_ID from T_CITY WHERE UP_CITY_ID = 1 
    OPEN Employee_Cursor 
    FETCH NEXT FROM Employee_Cursor into @AAA
    WHILE @@FETCH_STATUS = 0 
    BEGIN 
    PRINT @AAA 
    FETCH NEXT FROM Employee_Cursor into @AAA
    END 
    CLOSE Employee_Cursor 
    DEALLOCATE Employee_Cursor
      

  5.   


    ----前面已经定义了@AAA变量,不需要在游标中再次定义了!
      

  6.   

    DECLARE @AAA int 
    DECLARE Employee_Cursor CURSOR FOR 
    SELECT CITY_ID from T_CITY WHERE UP_CITY_ID = 1 
    OPEN Employee_Cursor 
    FETCH Employee_Cursor into @AAA
    WHILE @@FETCH_STATUS = 0 
    BEGIN 
    PRINT @AAA 
    FETCH NEXT FROM Employee_Cursor into @AAA
    END 
    CLOSE Employee_Cursor 
    DEALLOCATE Employee_Cursor
      

  7.   

    我不是什么大师..
    只是希望你平时说话别这么尖锐~ 
    动不动就说激动的话 又是红色又是感叹号 
    我看到好几次你这么说别人了CSDN答题都是出于热心 总会有出错的时候.
    交流可以 不要去说人家 再说一次 我不是什么大师 听着跟讽刺一样 
      

  8.   


    create table T_CITY(CITY_ID INT,UP_CITY_ID INT)
    INSERT T_CITY SELECT  1,1 UNION ALL  SELECT 2,1 UNION ALL SELECT 3,2 DECLARE @AAA int
    DECLARE Employee_Cursor CURSOR FORSELECT CITY_ID from T_CITY WHERE UP_CITY_ID = 1
    OPEN Employee_Cursor
    FETCH NEXT FROM Employee_Cursor INTO @AAA
    WHILE @@FETCH_STATUS = 0
    BEGIN
    PRINT @AAA
    FETCH NEXT FROM Employee_Cursor INTO @AAA
    END
    CLOSE Employee_Cursor
    DEALLOCATE Employee_Cursor1
    2
      

  9.   

    KAN 16 楼结果 没有多一个啊
      

  10.   

    CREATE PROCEDURE F_GET_REPORT001(@id int)
    as
    beginDECLARE @AAA int
    DECLARE Employee_Cursor CURSOR FOR
    SELECT CITY_ID from T_CITY WHERE UP_CITY_ID = @id
    OPEN Employee_Cursor
    FETCH NEXT FROM Employee_Cursor into @AAA
    select @AAA AS CITYS,count(ID) AS COUNT_NUMB into #temp from T_SERVICE_BILL WHERE CITY_ID IN (select ID from  F_GET_CITY_ID(@AAA))WHILE @@FETCH_STATUS = 0
    BEGIN
    FETCH NEXT FROM Employee_Cursor into @AAA
    Insert into #temp
    select @AAA AS CITYS,count(ID) AS COUNT_NUMB from T_SERVICE_BILL WHERE CITY_ID IN (select ID from  F_GET_CITY_ID(@AAA))END
    CLOSE Employee_Cursor
    DEALLOCATE Employee_Cursor
    select * from #temp
    return
    ENDGO
    -结果
    3 0
    4 0
    5 0
    6 0
    7 0
    8 0
    9 0
    10 1
    10 1
    2 1ID为10的重复了一次,是不是在循环的时候多插入了一次呀?
      

  11.   

    CREATE PROCEDURE F_GET_REPORT001(@id int) 
    as 
    begin DECLARE @AAA int 
    DECLARE Employee_Cursor CURSOR FOR 
    SELECT CITY_ID from T_CITY WHERE UP_CITY_ID = @id 
    OPEN Employee_Cursor 
    FETCH NEXT FROM Employee_Cursor into @AAA 
    select @AAA AS CITYS,count(ID) AS COUNT_NUMB into #temp from T_SERVICE_BILL WHERE CITY_ID IN (select ID from  F_GET_CITY_ID(@AAA)) WHILE @@FETCH_STATUS = 0 
    BEGIN 
    FETCH NEXT FROM Employee_Cursor into @AAA 
    Insert into #temp 
    select @AAA AS CITYS,count(ID) AS COUNT_NUMB from T_SERVICE_BILL WHERE CITY_ID IN (select ID from  F_GET_CITY_ID(@AAA)) END 
    CLOSE Employee_Cursor 
    DEALLOCATE Employee_Cursor 
    select * from #temp 
    return 
    END GO 
    -结果 
    3 0 
    4 0 
    5 0 
    6 0 
    7 0 
    8 0 
    9 0 
    10 1 
    10 1 
    2 1 ID为10的重复了一次,是不是在循环的时候多插入了一次呀?