首页 > 解决方案 > 将变量传递到 sp_helptext

问题描述

我们希望动态地将变量传递到 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 '+'.

标签: sqlsql-servertsqlstored-procedures

解决方案


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

这很容易解决。只需在调用前进行字符串操作:

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

EXEC sp_helptext @fullName;

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


推荐阅读