刚才没有发完,下面再把问题完整发一遍:如下图,这是personDetail表中数据
我想把第三列(sex列)的数据每行都增一,即修改后每行的sex值变成13这是我写的游标的代码DECLARE pDUpdate_cursor SCROLL CURSOR--使用游标更新personDetail表中sexL列值
FOR
SELECT ID,age,sex,personName FROM personDetail
FOR UPDATE OF sex
OPEN pDUpdate_cursor
PRINT '更新前personDetail表的相关数据为:'
SELECT ID,age,sex,personName FROM personDetail
FETCH  pDUpdate_cursor --取第一行数据
WHILE @@FETCH_STATUS = 0
BEGIN
 UPDATE personDetail SET sex= sex+1 WHERE CURRENT OF pDUpdate_cursor
 FETCH NEXT FROM pDUpdate_cursor
END
CLOSE pDUpdate_cursor
DEALLOCATE pDUpdate_cursor
PRINT '更新后personDetail表的相关记录为:'
SELECT ID,age,sex,personName FROM personDetail
代码运行后虽然数据更新成功了,但是效果图却是这样:
请问我怎样才能效果图中中间那部分去掉(就是中间那一行一行的数据),我只想查看更新前和更新后数据,请大侠帮忙

解决方案 »

  1.   


    DECLARE @ID INT,@age INT,@personName varchar(30)
    DECLARE pDUpdate_cursor SCROLL CURSOR--使用游标更新personDetail表中sexL列值
    FOR
    SELECT ID,age,sex,personName FROM personDetail
    FOR UPDATE OF sex
    OPEN pDUpdate_cursor
    PRINT '更新前personDetail表的相关数据为:'
    SELECT ID,age,sex,personName FROM personDetail
    FETCH  pDUpdate_cursor INTO @ID,@Age,@PersonName --取第一行数据
    WHILE @@FETCH_STATUS = 0
    BEGIN
     UPDATE personDetail SET sex= sex+1 WHERE CURRENT OF pDUpdate_cursor
     FETCH NEXT FROM pDUpdate_cursor INTO @ID,@Age,@PersonName
    END
    CLOSE pDUpdate_cursor
    DEALLOCATE pDUpdate_cursor
    PRINT '更新后personDetail表的相关记录为:'
    SELECT ID,age,sex,personName FROM personDetail
    这个完全不用cursor都行啊。
    UPDATE personDetail SET Sex=Sex+1
      

  2.   

    SQL代码中最上面那行没用!不小心多粘了一行!
      

  3.   

    按5楼的
    from 游标后加into 变量
    即可