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

SQLServerでのIN句の制限

    はい、制限はありますが、MSDNはそれが「数千」にあることを指定しているだけです:

    IN句に非常に多くの値(数千)を含めると、リソースを消費し、エラー8623または8632を返す可能性があります。この問題を回避するには、INリストの項目をテーブルに格納します。

    これらのエラーを詳細に見ると、この制限はINに固有のものではないことがわかります。 ただし、一般的にクエリの複雑さに適用されます:

    エラー8623:

    クエリプロセッサは内部リソースを使い果たし、クエリプランを作成できませんでした。これはまれなイベントであり、非常に複雑なクエリまたは非常に多数のテーブルまたはパーティションを参照するクエリでのみ発生します。クエリを単純化してください。このメッセージを誤って受け取ったと思われる場合は、カスタマーサポートサービスに詳細をお問い合わせください。

    エラー8632:

    内部エラー:式サービスの制限に達しました。クエリで複雑になる可能性のある式を探し、それらを単純化してみてください。



    1. あるフィールドの日付と別のフィールドの時刻を組み合わせる方法-MSSQLServer

    2. SQLiteの表示テーブル

    3. SQL Serverデータベースの復元(T-SQL)

    4. ROW_NUMBER()を使用するにはどうすればよいですか?