T-SQL размышление о параметрах - PullRequest
4 голосов
/ 15 ноября 2010

возможно ли использовать какое-либо отражение параметров в модуле T-SQL (функция, процедура)?

procedure x(@foo nvarchar(max),@bar nvarchar(max)) ... 
set @foo = isnull(@foo,0); 
set @bar = isnull(@bar,0);

Можно ли перебирать мои параметры и устанавливать их значения в цикле? Или мне для этого нужно использовать SQLCLR?

Ответы [ 2 ]

5 голосов
/ 15 ноября 2010

Если у вас так много параметров, что вам нужно их программно перечислить, значит, у вас слишком много параметров!Может быть, переключение на альтернативную структуру данных, такую ​​как табличный параметр или документ XML, даст вам более понятный способ вставить такие сложные данные в ваши процедуры / функции?

Однако, если у вас есть особая потребность вЗатем посмотрите на sys.parameters (при условии, что вы используете SQL Server 2005 или более позднюю версию).

0 голосов
/ 15 ноября 2010

Я не знаю ни одного прямого пути, но вы можете найти процедуру

sp_executesql

полезно, похоже на функцию exec в большинстве интерпретируемых языков (запускайте код из 'string'). Вероятно, не самый безопасный или самый популярный ответ, но он может быть мощным. Что именно ты пытаешься сделать? Я не могу быть слишком конкретным (или даже уверен, что это поможет!) С тем, что вы сказали до сих пор.

http://blogs.msdn.com/b/pnayak/archive/2007/05/03/how-to-use-parameter-in-tsql-to-actually-use-it-as-identifier-rather-than-the-value.aspx

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