我有一个带有 nvarchar 参数的存储过程。我希望调用者在使用此 SP 时提供 sql 命令的文本。
如何从 SP 内执行提供的 sql 命令?
这可能吗?-
我认为可以使用 EXEC 但以下内容:
EXEC @script
错误表明无法按给定名称找到存储过程。由于它是一个脚本,这显然是准确的,但让我认为它没有按预期工作。
Use:
BEGIN
EXEC sp_executesql @nvarchar_parameter
END
...假设参数是整个 SQL 查询。如果不:
DECLARE @SQL NVARCHAR(4000)
SET @SQL = 'SELECT ...' + @nvarchar_parameter
BEGIN
EXEC sp_executesql @SQL
END
意识到SQL注入攻击 http://xkcd.com/327/,我强烈推荐阅读动态 SQL 的诅咒和祝福 http://www.sommarskog.se/dynamic_sql.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)