Dan*_*nor 2 sql t-sql sql-server sql-server-2005 dynamic-sql
我有一个带有nvarchar参数的存储过程.我希望调用者在使用此SP时为sql命令提供文本.
如何从SP内执行提供的sql命令?
这有可能吗? -
我认为可以使用EXEC,但以下内容:
EXEC @script
Run Code Online (Sandbox Code Playgroud)
错误表明它无法按给定名称查找存储过程.由于它是一个脚本,这显然是准确的,但让我觉得它没有按预期工作.
使用:
BEGIN
EXEC sp_executesql @nvarchar_parameter
END
Run Code Online (Sandbox Code Playgroud)
...假设参数是一个完整的SQL查询.如果不:
DECLARE @SQL NVARCHAR(4000)
SET @SQL = 'SELECT ...' + @nvarchar_parameter
BEGIN
EXEC sp_executesql @SQL
END
Run Code Online (Sandbox Code Playgroud)
注意SQL注入攻击,我强烈建议阅读动态SQL的诅咒和祝福.
| 归档时间: |
|
| 查看次数: |
19610 次 |
| 最近记录: |