我想在不需要创建查询本身的 exec 中使用变量值。我将在我的数据库的一个字段中存储一个查询,我只想使用该存储过程中的参数来执行它。对于下面的示例,我声明了两个变量@ValueVariable 是存储过程的参数,而我声明的@QueryString 是我将从数据库中读取的变量,我想使用@ValueVariable 的值来执行它。
DECLARE @ValueVariable int=0
@QueryString VARCHAR(MAX)=
'SELECT UserName FROM TableUser WHERE UserId=@ValueVariable'
EXEC(@QueryString)
当我尝试执行时,在“SELECT UserName FROM TableUser WHERE UserId=@ValueVariable”附近出现错误语法错误
我知道我可以通过
@QueryString VARCHAR(MAX)=
'SELECT UserName FROM TableUser WHERE UserId='+@ValueVariable
但我想如上所述使用它。不在我的过程中进行查询,而是使用从数据库检索到的字符串中的变量值。
那么有什么方法我可以使用当前环境中变量的值来执行它。