sql - 将变量传递到 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 '+'.
解决方案
问题是参数不支持字符串操作。
这很容易解决。只需在调用前进行字符串操作:
DECLARE @spName VARCHAR(120) = 'spName';
DECLARE @fullName NVARCHAR(MAX) = N'DatabaseName.dbo.' + @spName;
EXEC sp_helptext @fullName;
这是为了演示。如果您实际上是在传递这些值,那么您应该使用QUOTENAME()。
推荐阅读
- ios - 串行队列 API 多个服务调用
- c++ - LoadLibrary 失败 - 找不到指定的模块
- c# - 将 IWeb 元素从一个列表移动到另一个列表并使用 Selenium 比较它们的计数?
- visual-studio - 统一的意外符号无效
- javascript - 使用 Javascript dom 代替 jQuery 元素选择器(没有 jQuery)
- ios - 如何从 Swift 类中检索 ObjectiveC 类中的 Userdefault?
- android - 带有 Android Switch 的 RxView
- r - 将字符列转换为日期
- python - 当重复 2 列重复时,即使有重复值也不显示输出
- c - 如何从特定位置读取文件?