回答

收藏

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

技术问答 技术问答 183 人阅读 | 0 人回复 | 2023-09-14

我想使用表变量而不是临时表,但我的主要查询结构是动态的。动态查询是由单引号引起的,那么我该怎么办呢?@TableVariable获取数据。由于稍后会添加一些参数,我不想删除动态查询。
8 h+ o7 Y. ?2 D1 v例如,以下是错误的代码,我已经将表变量写入动态查询.....' [  w, _/ S7 q& ^1 u
/*Declare Table Variable*/DECLARE @TempVehicles TABLE    (            [VehicleID] INT     *Insert data into Table Variable*/INSERT INTO @TempVehicles(    [VehicleID])SELECT  VehicleIDFROM 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在这方面帮助我。$ T6 L+ n: t* A4 I
提前致谢。
" v' _" Q% l  o# a+ o                                                                * {! q$ }3 A% d& `
    解决方案:                                                                0 K5 e$ ]4 Z3 H9 h
                                                                尝试这个 :
, |$ u: g$ h) j; A  h3 {CREATE TYPE IntegerTableType AS TABLE (ID INT);goDECLARE @TempVehicles IntegerTableType;INSERT  @TempVehiclesvalues (1);DECLARE @SQL NVARCHAR(MAX);SET @SQL ='SELECT *            FROM @TempVehicles;';EXECUTE SP_EXECUTESQL @SQL,N'@TempVehicles IntegerTableType READONLY',@TempVehicles;
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则