sql >> データベース >  >> RDS >> Sqlserver

SQLServer2008でwhileループを実行する

    MS SQL Server 2008のDO-WHILEについてはよくわかりませんが、DO-WHILEループのように使用するようにWHILEループロジックを変更できます。

    例はここから取られています:http://blog.sqlauthority.com/2007/10/24/sql-server-simple-example-of-while-loop-with-continue-and-break-keywords/

    1. WHILEループの例

      DECLARE @intFlag INT
      SET @intFlag = 1
      WHILE (@intFlag <=5)
      BEGIN
          PRINT @intFlag
          SET @intFlag = @intFlag + 1
      END
      GO
      

      ResultSet:

      1
      2
      3
      4
      5
      
    2. BREAKキーワードを使用したWHILEループの例

      DECLARE @intFlag INT
      SET @intFlag = 1
      WHILE (@intFlag <=5)
      BEGIN
          PRINT @intFlag
          SET @intFlag = @intFlag + 1
          IF @intFlag = 4
              BREAK;
      END
      GO
      

      ResultSet:

      1
      2
      3
      
    3. CONTINUEおよびBREAKキーワードを使用したWHILEループの例

      DECLARE @intFlag INT
      SET @intFlag = 1
      WHILE (@intFlag <=5)
      BEGIN
          PRINT @intFlag
          SET @intFlag = @intFlag + 1
          CONTINUE;
          IF @intFlag = 4 -- This will never executed
              BREAK;
      END
      GO
      

      ResultSet:

      1
      2
      3
      4
      5
      

    ただし、ループを回避するようにしてください データベースレベルで。参照。



    1. いつカーソルとデータベースを閉じる必要がありますか?

    2. ダウンタイムなしでMySQLをAmazonEC2からオンプレミスデータセンターに移行する方法

    3. SQLコマンド

    4. Postgresがサブクエリをインライン化するのを防ぐにはどうすればよいですか?