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

SQL“存在”动态查询

司寇研
2023-03-14
问题内容

假设我有一个存储在这样的变量中的查询(它实际上是动态填充的,并且更复杂,但这是出于演示目的):

DECLARE @Query VARCHAR(1000) = 'SELECT * FROM dbo.MyTable'

有没有一种方法可以检查查询是否返回任何结果?像这样的东西,但这是行不通的:

IF EXISTS (@Query)
BEGIN
    -- do something
END

我能想到的唯一方法是将结果放入临时表中,然后从中进行查询,但这并不理想,因为动态查询中的列可以变化,而且我真的不需要临时表除了检查是否会返回某些行外,完全出于其他原因。有没有更好的办法?


问题答案:

尝试执行Dynamic query和用于@@RowCount查找行的存在。

DECLARE @Query  NVARCHAR(1000) = 'SELECT * FROM [dbo].[Mytable]',
        @rowcnt INT

EXEC Sp_executesql @query

SELECT @rowcnt = @@ROWCOUNT

IF @rowcnt > 0
  BEGIN
      PRINT 'row present'
  END


 类似资料:
  • 本文向大家介绍在MySQL存储过程中实现动态SQL查询?,包括了在MySQL存储过程中实现动态SQL查询?的使用技巧和注意事项,需要的朋友参考一下 对于存储过程中的动态SQL查询,请使用PREPARE STATEMENT的概念。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是创建存储过程并实现动态SQL的查询- 调用存储

  • 问题内容: 我有一个存储在列表中的关键字列表。 要从表中获取记录,请使用以下查询: 您可能已经注意到,我的查询容易受到sql注入的攻击,因此我想通过SqlCommand()使用参数。我已经尝试了以下方法,但仍然无法正常工作: 我在哪里犯错,或者应该怎么做? 问题答案: 您在这里做错了几件事: 您为所有参数赋予相同的名称。那行不通。参数需要唯一的名称。 您为每个项目创建一个新的SqlCommand。

  • 我有一个这样的SQL问题 根据用户输入,我想将botcode='r1'更改为给定输入。在不重新启动作业的情况下说出botcode='r10'。有没有办法做到这一点。我在flink 1.7上使用stream env。我尝试配置流来读取输入。但仍停留在如何动态更改查询上。有人能帮我吗?提前谢谢

  • 使用Python和psycopg2,我试图构建一个动态SQL查询来将行插入到表中。 变量有:1。表名2。列名的变量列表3。可变值列表,理想情况下在一条语句中输入多行 我遇到的问题是如何处理从Python到SQL的字符串文字,以及psycopg2如何避免代码受到SQL注入攻击。 使用SQL模块,我已经解决了动态添加表名和列列表的问题。然而,我真的很难添加VALUES。首先,值以%(val)s的形式放

  • 问题内容: 我有一个数据库字段名称调用,我正在尝试使用如下所示的变量名称来选择它: 显然,SQL将解释为字符串,而不是数据库的字段,我如何以这种方式将其识别为字段名而不是字符串,可能没有任何select或if语句。 问题答案: 试试这个: 您必须组成一个动态查询,并使用 要在事物的“动态”方面添加更多内容,请使用存储过程。请参见此处的示例: http://www.marten-online.com

  • 问题内容: 我已经徒劳地搜索了很长时间,不得不承认失败并寻求帮助,我正在尝试修改数据透视查询,以从具有以下数据的表中生成结果的动态查询: 为了显示这样的内容,其中页码列取决于用户访问的页面数: 我已经通过对列中的硬编码进行了管理,但是显然我不想继续更改脚本以容纳越来越多的页面。 到目前为止,我有一些类似的东西: 任何帮助或正确方向的指点将不胜感激! 提前致谢! 问题答案: 我所看到的关于动态枢轴的