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

SQL Server でのレコードセットのループ

    カーソルやその他の手続き型コードを使用せずに、いくつかのステートメントでこれを実行できるはずです。すべてが 1 つのトランザクション内にあることを確認してください:

    BEGIN TRANSACTION
    
    INSERT INTO crrsql.dbo.AR_Transactions (
        cashier_id,
        cust_num,
        balance,
        transaction_date)
    SELECT
        100199,
        cust_num,
        -acct_balance,
        DATEADD(MINUTE, -30, current_date)
    FROM crrsql.dbo.Customers
    WHERE acct_balance <> 0
    
    UPDATE crrsql.dbo.Customers SET acct_balance = 0 WHERE acct_balance <> 0
    
    COMMIT TRANSACTION
      

    もちろん、適切なエラー処理を追加し、最初にこれをテストしてください。

    また、テーブル名と列名の一部を少し変更しました。どの特定の命名規則が他のものよりも優れているかについては触れたくありませんが、少なくとも 一貫してください。アンダースコアを使用する場合は、それらを使用してください。代わりにキャメルバック表記を使用する場合は、それを使用しますが、それらを混在させないでください。同じことが、複数形と単数形のテーブル名にも当てはまります。



    1. PHPmysqliクエリは結果を返しません

    2. 長いSQLステートメントをJavaScriptでラップする便利な方法

    3. Active Adminダッシュボード(Rails、Active admin 1.0、Postgresqlデータベース、postgres_ext gem)のシリアル化された属性(配列)の値の出現をカウントします

    4. MySQLからのデータセットの入力の進行状況を表示する