Поскольку вы не предоставите подробных сведений о том, как работает код, я собираюсь сделать несколько диких предположений, что под «параметризованным запросом» вы подразумеваете хранимую процедуру и что вы вызываете хранимую процедуру с помощью всего ее текста ( не лучшая практика, но я не знаю, каковы ограничения программного обеспечения, которое вы используете).
В любом случае, причина pad
или proc
может вызвать проблемы в том, что вы явно не говорите серверу, что это строки. По причинам, которые я никогда не понимал, TSQL позволит вам передавать строки из одного слова в (n) параметры процедур varchar. Простой пример будет:
EXEC sp_helpdb master
Строго говоря, это должно привести к синтаксической ошибке. Правильный синтаксис:
EXEC sp_helpdb 'master'
Но, похоже, разработчики говорили: «Эй, это меньше печатает, это здорово для производительности!» и так запрос работает.
Теперь, если ваша процедура вызывается так:
EXEC p_find_recipe thai
Это передаст строку «тайский», и все будет работать, как ожидалось. Однако при использовании зарезервированного слова, такого как proc
или file
или table
и т. Д. ..., это может вызвать синтаксическую ошибку, и вам необходимо обязательно заключить в кавычки значение, чтобы оно работало.
Все это говорит:
- синтаксическая ошибка должна быть возвращена сразу, она не должна занимать 10 секунд
- AFAIK "pad" не является ключевым словом с повторным знаком
Так что я не уверен, что вышеизложенное относится к вашей проблеме, и поэтому вполне возможно, что я просто потратил 10 минут на то, чтобы ничего не печатать =)
В любом случае, вам, вероятно, нужно будет дать дополнительные сведения о том, какой язык вы используете, что вы имеете в виду при параметризованном запросе (возможно, вы имеете в виду синтаксис SELECT * FROM table WHERE field = ?
, в котором после заполняются символы?) желательно с некоторым примером кода.