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

SQL Server の更新に While ループを使用する

    列名を引用符で囲むことはできないため、これは実際には機能しません。基本的に行っていることは、常に異なる 2 つの文字列を SQL で比較することです。つまり、更新を実行することはありません。

    このようにしなければならない場合は、次のようなものを用意する必要があります...

    DECLARE @a INT 
    DECLARE @b VARCHAR 
    SET @a = 1
    
    WHILE @a < 30
    BEGIN
    set @b = @a  
    exec sp_executesql N'UPDATE source set h = h + 'x_'[email protected] + N'
               where y_'[email protected] + N' = ''Sold'''   
    
    SET @a = @a + 1
    END
    

    ただし、一般的には、この方法はお勧めしません。私は、あらゆる種類の本番コード用に別の SQL ステートメント内で生成される動的 SQL のファンではありません。 1 回限りの開発タスクを行うには非常に便利ですが、ユーザーが実行できるコードには適していません。



    1. SQL Server SELECTLASTN行

    2. PowerShellを使用して.sqlファイルを実行する方法は?

    3. 行を削除しようとしたときにSQLite例外が発生しました

    4. SQL Server:データベース、インスタンス間でストアド プロシージャを移行する