当前位置: 首页 > 面试题库 >

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

林祯
2023-03-14
问题内容

我有一个带有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的诅咒和祝福。



 类似资料:
  • 问题内容: 我试图编写一个程序来通过args读取文本文件,但是当我运行它时,它总是说找不到该文件,即使我将其放置在与我正在运行的main.java相同的文件夹中。有谁知道我的问题的解决方案或更好的阅读文本文件的方法? 问题答案: 请勿在中使用相对路径。 它将变成相对于当前工作目录的,这取决于您如何运行应用程序,而该方法又是无法从应用程序内部进行控制的。这只会导致可移植性麻烦。如果从Eclipse内

  • 问题内容: 有没有办法将可执行块作为参数传递给静态方法?有可能吗?例如我有这种方法 或类似的东西。实际上,这要复杂得多,我只是简化了这个问题。我试图重构项目,并创建了一个通用实用程序类,其中包含类使用的静态方法。 问题答案: 您可以使用对象: 然后,您可以使用以下命令调用它: 编辑(对不起,@ Bohemian):在Java 8中,可以使用lambdas简化调用代码: 您仍然会以相同的方式声明。l

  • 当我向应用程序提供参数时,它不会运行。它没有争论。 请帮帮我。

  • 问题内容: 我有一个整数或字符串列表,需要将其作为Delphi DataSet的参数传递。怎么做? 这是一个例子。MyQuery类似于: 我将参数设置为列表或数组或其他内容: 它将导致此查询发送到sql服务器: 如果该解决方案也可以与字符串一起使用,则执行以下查询会更好: 变得: 我相信这是一个简单的问题,但是“ IN”并不是搜索网络的好关键字。 请回答如何在IDE中配置参数,查询以及如何传递参数

  • 问题内容: 我想将数组作为参数传递给SqlQuerySpec,以便在构建对天蓝色的db数据库的查询时可以在IN表达式中使用它。我想做的是像我们对常规参数(字符串,整数等)所做的事情: 但是,这种方式是行不通的。我还有其他方法可以将数组作为参数传递吗?谢谢。 问题答案: 您的查询应如下所示: 那么您可以将其作为数组传递,并检查该数组是否包含文档中属性中具有的值。 参考: https://docs.m

  • 问题内容: 我有一个由一列值组成的数据框,我想将其作为参数传递来执行以下sql查询: 因此,我尝试了许多其他事情: 传递数据帧值的正确方法是什么? 注意:我使用的是Microsoft SQL Server,因此查询格式需要与我一样。 问题答案: 这能满足您的需求吗? 然后,您应该能够查询而无需更多参数。