我们都知道在delphi中循环表中的记录是这样的
qy1.close;
qy1.sql.clear;
qy1.sql.add('select from a');
qy1.open;
while not qy1.eof do
begin
.......
qy1.next;
end;
有没有在sqlserver2000查询分析器里的循环呢?
请各位高手指教。

解决方案 »

  1.   

    你怎么不查书吖? 看似你的可能还要结合游标来做WHILE (SELECT AVG(price) FROM titles) < $30
    BEGIN
       UPDATE titles
          SET price = price * 2
       SELECT MAX(price) FROM titles
       IF (SELECT MAX(price) FROM titles) > $50
          BREAK
       ELSE
          CONTINUE
    END
      

  2.   

    这是带游标的,多查查handbookUSE pubs
    DECLARE tnames_cursor CURSOR
    FOR
       SELECT TABLE_NAME 
       FROM INFORMATION_SCHEMA.TABLES
    OPEN tnames_cursor
    DECLARE @tablename sysname
    --SET @tablename = 'authors'
    FETCH NEXT FROM tnames_cursor INTO @tablename
    WHILE (@@FETCH_STATUS <> -1)
    BEGIN
       IF (@@FETCH_STATUS <> -2)
       BEGIN   
          SELECT @tablename = RTRIM(@tablename) 
          EXEC ('SELECT ''' + @tablename + ''' = count(*) FROM ' 
                + @tablename )
          PRINT ' '
       END
       FETCH NEXT FROM tnames_cursor INTO @tablename
    END
    CLOSE tnames_cursor
    DEALLOCATE tnames_cursor
      

  3.   

    你说的这个我看过帮助了,但帮助里那个例子是判断条件,我现在想知道的是怎样循环某个表的每条记录(在delphi中是用not eof),但在sqlserver中是什么呢?
      

  4.   

    如果在sqlserver实现你的while部分,需要看具体情况,有时候一条语句就可以实现了,没有必要使用游标什么的,效率很低
      

  5.   

    楼主要的可能就是游标的效果,一条一条来处理DECLARE Employee_Cursor CURSOR FOR
    SELECT LastName, FirstName FROM Northwind.dbo.Employees
    OPEN Employee_Cursor
    FETCH NEXT FROM Employee_Cursor
    WHILE @@FETCH_STATUS = 0                                 -- not eof
    BEGIN
       FETCH NEXT FROM Employee_Cursor
    END
    CLOSE Employee_Cursor
    DEALLOCATE Employee_Cursor
      

  6.   

    declare @zd varchar(2000)
    select @zd='select top 100 * from qcsjb'
    请问在sqlserver2000查询分析器里用什么语句可以显示出@zd的语句,也就是显示出'select top 100 * from qcsjb'的结果。
      

  7.   

    declare @zd varchar(2000) 
    select @zd='select top 100 * from qcsjb' 
    请问在sqlserver2000查询分析器里用什么语句可以显示出@zd的语句,也就是显示出'select top 100 * from qcsjb'的结果。
    我的意思是说怎样对@zd进行操作,才能显示出它的值所执行的sql语句。
    望高手指点。
      

  8.   

    说说你要通过循环实现什么,有时候一条sql语句就可以实现了