请问在使用游标时如何将某列的值(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
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
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
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
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
----前面已经定义了@AAA变量,不需要在游标中再次定义了!
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
只是希望你平时说话别这么尖锐~
动不动就说激动的话 又是红色又是感叹号
我看到好几次你这么说别人了CSDN答题都是出于热心 总会有出错的时候.
交流可以 不要去说人家 再说一次 我不是什么大师 听着跟讽刺一样
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
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的重复了一次,是不是在循环的时候多插入了一次呀?
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的重复了一次,是不是在循环的时候多插入了一次呀?