小编典典

如何执行作为sp参数传递的sql文本?

sql

我有一个带有nvarchar参数的存储过程。我希望调用者在使用此SP时提供sql命令的文本。

如何从SP中执行提供的sql命令?

这有可能吗?-

我认为可以使用EXEC进行操作,但需要注意以下几点:

EXEC @script

错误,表明它无法通过给定名称找到存储过程。由于它是脚本,因此这显然是准确的,但让我认为它无法按预期工作。


阅读 143

收藏
2021-04-28

共1个答案

小编典典

使用:

BEGIN

  EXEC sp_executesql @nvarchar_parameter

END

…假设参数是一个完整的SQL查询。如果不:

DECLARE @SQL NVARCHAR(4000)
SET @SQL = 'SELECT ...' + @nvarchar_parameter

BEGIN

  EXEC sp_executesql @SQL

END

注意SQL注入攻击,我强烈建议阅读动态SQL的诅咒和祝福

2021-04-28