Размеры по умолчанию для параметров SQL в ADO.NET - PullRequest
4 голосов
/ 24 мая 2009

Существует несколько перегрузок для функции sqlcommand.Parameters.Add (...). Некоторые из них не принимают размер, а некоторые делают. Какие размеры установлены по умолчанию? Безопасно ли не устанавливать размеры параметров? Влияет ли это на производительность?

Ответы [ 2 ]

4 голосов
/ 24 мая 2009

От SqlParameter.Size Свойство doco

Если явно не задано, размер выводится из фактического размера указанного значения параметра.

Есть замечательный ответ Питера Воне на 293315 , который более подробно описывает, что это на самом деле означает

1 голос
/ 24 мая 2009

Возможно отправить параметр, который слишком велик для типа данных базы данных, из кода .Net в SQL Server. Если вы зададите размер при создании параметра в своем .Net-коде, это вызовет исключение, если будет отправлено слишком большое значение. Таким образом, вы узнаете об этом раньше и не потеряете вызов базы данных.

В качестве альтернативы, вы можете установить максимальное количество символов для определенных текстовых полей. База данных может разрешать фамилии 400 символов, но вам нужен только varchar 100.

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

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