Передача переменной в sp_helptext - PullRequest
0 голосов
/ 01 июня 2018

Мы хотим динамически передавать переменные в sp_helptext, но поскольку sp_helptext принимает переменную, переданную в двоеточие;это вызывает ошибку.Мой запрос выглядит так:

   EXEC sp_helptext N'DatabaseName.dbo.SpName';   --- this works

   DECLARE @spName VARCHAR(120) = 'spName'

   EXEC sp_helptext N'DatabaseName.dbo.'+@spName+''

И ошибка:

   Msg 102, Level 15, State 1, Line 53
   Incorrect syntax near '+'.

1 Ответ

0 голосов
/ 01 июня 2018

Проблема в том, что строковые операции не поддерживаются для аргументов.

Это достаточно легко исправить.Просто выполните строковые операции перед вызовом:

DECLARE @spName VARCHAR(120) = 'spName';
DECLARE @fullName NVARCHAR(MAX) = N'DatabaseName.dbo.' + @spName;

EXEC sp_helptext @fullName;

Это для демонстрации.Если вы действительно передаете такие значения, то вы должны использовать QUOTENAME () .

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