Могу ли я установить «Параметры для хранимой процедуры» выше, чем 2100 в SQL Server 2005/08? - PullRequest
1 голос
/ 29 января 2009

Существует жесткое ограничение количества параметров, которое может иметь любой отдельный оператор SQL, и составляет 2100 (для SQL Server 2005) или 1024 (для SQL Server 2000).

Кто-нибудь знает способ увеличить это число?

Если вы хотите знать «почему» (как я сам умираю от любопытства), ответ на этот вопрос таков:

MyL2SDataContext.Accounts.Where(acct=> selectedAccountIDs.Contains(acct.ID))...

Спасибо

Ответы [ 3 ]

3 голосов
/ 29 января 2009

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

3 голосов
/ 29 января 2009

Это жесткий предел - и я бы серьезно подумал о переосмыслении реальной необходимости его расширения, особенно в свете приведенного вами примера кода.

0 голосов
/ 23 июля 2009

Я стремлюсь к более долгосрочному и постоянному решению этой проблемы с использованием XML. В SQL Server 2005 и более поздних версиях, вероятно, можно использовать тип xml, чтобы перенести локальную коллекцию в Linq в SQL как один параметр, и, возможно, OpenXml можно использовать для SQL Server 2000.

Что касается возможности увеличить этот лимит, я не уверен, и именно так я и оказался на этом посту. Я опубликую все, что найду здесь, хотя после моего исследования.

См. Мой пост на сайте Microsoft Connect и проголосуйте, если вы также хотите, чтобы это было исправлено.

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=475984

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