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

如何在动态查询中使用表变量

鄂和璧
2023-03-14
问题内容

我想使用表变量而不是临时表,但是我的主要查询构造是动态的。动态查询用单引号引起来,所以我该如何从@TableVariable中获取数据。我不想删除动态查询,因为稍后会添加一些参数。

例如,以下是错误代码,其中我已将表变量写入动态查询中.....

/*Declare Table Variable*/
DECLARE @TempVehicles TABLE
    (
        [VehicleID] INT
    )   
/*Insert data into Table Variable*/
INSERT INTO @TempVehicles
(
    [VehicleID]
)
SELECT  VehicleID
FROM tbl_Vehicles

/*Dynamic Query and Main SQL Construction*/
DECLARE @SQL NVARCHAR(MAX)
SET @SQL ='SELECT Cust_ID,A.VehicleID,GISInfo 
           FROM @TempVehicles A INNER JOIN tbl_GISData B ON A.VehicleID=B.VehicleID'

EXECUTE SP_EXECUTESQL @SQL

在这方面帮助我。

提前致谢。


问题答案:

试试这个 :

CREATE TYPE IntegerTableType AS TABLE (ID INT);
go

DECLARE @TempVehicles IntegerTableType;

INSERT  @TempVehicles
values (1);





DECLARE @SQL NVARCHAR(MAX);
SET @SQL ='SELECT * 
           FROM @TempVehicles;';


EXECUTE SP_EXECUTESQL @SQL,N'@TempVehicles IntegerTableType READONLY',
@TempVehicles;


 类似资料:
  • 我有一个apollo包装的组件,它应该为我的组件提供来自github graphql v4 api的响应数据。我打算使用应用程序另一部分的字符串(SEARCH\u QUERY)来用于我的gql查询,但github不断返回未定义的字符串。我在关注阿波罗官方文件http://dev.apollodata.com/react/queries.html#graphql-选项。我看不出我做错了什么。 这个没

  • 在PL/SQL中,可以使用连接指定In运算符的值: 是否可以使用变量执行相同的操作? 如果是这样,如何? 编辑:参考Marcin的回答,我如何从结果表中选择? 我得到以下错误:

  • 问题内容: 我有5个表或表要从\查询 我的语法我喜欢这样 问题是,当我运行此命令时,我收到一条错误消息:“ .....您在SQL WHERE Patient_ID =吗?附近有错误?” 当我使用system.out.println(sql2)输出sql时; 值未在sql2中设置 问题答案: 当您准备一条语句时,数据库将构造一个执行计划,如果表不存在,则该计划无法执行。换句话说,Placehodle

  • 问题内容: 我试图使用临时表开发此存储过程,但是那行不通,所以我改用表变量。我需要对表变量执行临时动态查询,然后使用该表变量执行最终查询。问题是我收到错误消息“必须声明标量变量@clms”。我假设Exec没有该表变量的作用域? 问题答案: 这是简单的最小示例。您可以使用语句。关键是要在动态查询的内部和外部声明表变量。在动态查询结束时,只需从表变量中选择并将结果集插入外部表变量中即可:

  • 我们的应用程序使用Dropwizard和JDBI来处理对Postgres数据库的查询。 通常,我们会有一个不同的数据库用于生产和生产,但现在我们正在与一个新系统集成,这将共享用于生产和产品的相同数据库,但使用了一组不同的表。 例如,我们将有表用户和users_stg 有没有一种方法可以将表名以动态方式传递给查询,以便我们可以在属性文件中设置表名? 当前查询的示例 所需查询示例 当然,@Bind不会

  • 问题内容: 如何动态传递变量参数 TypeError:必须为str,而不是int 尽管我转换为字符串有任何想法,但遇到了以上错误? 有没有其他的方式来传递参数? 问题答案: 通过通过关键字arguments提供参数来使用参数化sql 。数据库适配器将为您完成参数的正确引用,并且代码将较不容易受到SQL注入攻击。(有关不正确引用的非参数化sql可能引起您的麻烦的类型,请参阅Little Bobby