SQL Server IN (максимум, параметры, разрешено, в, здесь)? - PullRequest
2 голосов
/ 02 декабря 2011

Сколько параметров я могу передать функции SQL Server IN ()?

SELECT * FROM TABLE where ID IN ( 1,2,3,4,5,..,.,....)

Ответы [ 3 ]

8 голосов
/ 25 октября 2012

Этот предел составляет 65,535 .

См. Раздел «Причины» ЗДЕСЬ .

6 голосов
/ 02 декабря 2011

Включение чрезвычайно большого числа значений (многие тысячи) в IN clause может потреблять ресурсы и возвращать ошибки 8623 или 8632. Чтобы обойти эту проблему, сохраните элементы в списке IN в таблице.

Ошибка 8623:

Процессору запросов не хватило внутренних ресурсов, и он не смог создать план запроса.Это редкое событие и ожидается только для чрезвычайно сложных запросов или запросов, которые ссылаются на очень большое количество таблиц или разделов.Пожалуйста, упростите запрос.Если вы считаете, что получили это сообщение по ошибке, обратитесь в службу поддержки клиентов для получения дополнительной информации.

Ошибка 8632:

Внутренняя ошибка: достигнут предел обслуживания выражений,Пожалуйста, поищите потенциально сложные выражения в вашем запросе и попытайтесь упростить их.

6 голосов
/ 02 декабря 2011

Согласно документации - "много тысяч".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...