我有一个带有nvarchar参数的存储过程。我希望调用者在使用此SP时提供sql命令的文本。
如何从SP中执行提供的sql命令?
这有可能吗?-
我认为可以使用EXEC进行操作,但需要注意以下几点:
EXEC @script
错误,表明它无法通过给定名称找到存储过程。由于它是脚本,因此这显然是准确的,但让我认为它无法按预期工作。
使用:
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的诅咒和祝福。