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

WHERE IN (SELECT NonExistingColumnName) により予期しない動作が発生する

    これは既知の問題です。

    次のステートメントは誤って delete します すべて users テーブルの行:

    DELETE FROM users WHERE user_id IN (SELECT user_id FROM groups);
      

    groups テーブルに user_id という名前の列がない場合でも。

    ただし、次のステートメントはエラーをスローします:

    DELETE FROM users WHERE user_id IN (SELECT g.user_id FROM groups g);
    
    Msg 207, Level 16, State 1, Line 1
    Invalid column name user_id
      

    編集

    DELETE TOP(1) FROM #Orders WHERE OrderID IN (SELECT OtherID FROM #LIST_TO_DELETE  )
     Invalid column name 'OtherID'
      

    OtherID であるため、これはエラーをスローします。 #Orders には存在しません



    1. GROUPBYの単一の列に基づくDISTINCTの使用

    2. PostgreSQL-pg_config -bash:pg_config:コマンドが見つかりません

    3. 複数の画像ファイル配列をデータベースに挿入する

    4. データベースのメンテナンスを容易にするためのモデル化方法