将变量传递给sp_helptext

时间:2018-06-01 11:23:20

标签: sql sql-server tsql stored-procedures

我们希望动态地将变量传递给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 :(得分:3)

问题是参数不支持字符串操作。

这很容易修复。只需在调用之前执行字符串操作:

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

EXEC sp_helptext @fullName;

这是为了演示。如果您实际传递了这些值,那么您应该使用QUOTENAME()