如何使用2 varchar类型查询在单个临时表中插入数据

编程入门 行业动态 更新时间:2024-10-28 20:31:45
本文介绍了如何使用2 varchar类型查询在单个临时表中插入数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

hii all .. 我想在临时表中输入数据。使用2 varchar类型查询.. 我的存储过程是: 错误是:

hii all.. i want to enter data in a temp table . using 2 varchar type query.. my stored procedure is: the error is:

Msg 213, Level 16, State 7, Line 1 Column name or number of supplied values does not match table definition.

USE [scjdata] GO /****** Object: StoredProcedure [dbo].[alldistt_wise] Script Date: 05/06/2014 15:54:57 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[alldistt_wise] @Sex VARCHAR (250), @DisabiltyType VARCHAR (250), @SocialGroup VARCHAR (250), @Minority VARCHAR (250), @Age_start VARCHAR (250), @Age_End VARCHAR (250) AS BEGIN SET NOCOUNT ON; DECLARE @ChildTblName AS VARCHAR (125), @FamilyTblName AS VARCHAR (125), @vQuery AS VARCHAR (max), @vQuery1 as varchar(max); CREATE TABLE #tblagereoprt ( disttname nvarchar(20), totalpopulation nvarchar(20) ); DECLARE @N varchar(3) SET @N = '1' WHILE (@N <= 27) BEGIN SET @ChildTblName = '[' + RIGHT(('0'+@N),2) + 'Child_D' + ']' SET @FamilyTblName = '[' + RIGHT(('0'+@N),2) + 'Family_D' + ']' SET @vQuery1 = 'select distname as disttname from DIST where distt='+@N+'' SET @vQuery = 'select count(Childame) as totalpopulation from ' + @ChildTblName + ' As Child INNER JOIN ' + @FamilyTblName + ' AS Family ON Child.barcode=Family.barcode where Child.distt='+@N+''; IF(@Sex <> '') BEGIN SET @vQuery = @vQuery + ' AND Child.sex = ''' + @Sex + '''' END IF(@DisabiltyType <> '') BEGIN SET @vQuery = @vQuery + ' AND Child.disability = ''' + @DisabiltyType + '''' END IF(@Age_start <> '' and @Age_End <> '') BEGIN SET @vQuery = @vQuery + ' AND (Child.age between ''' + @Age_start + ''' and ''' + @Age_End + ''')' END IF(@SocialGroup <> '') BEGIN SET @vQuery = @vQuery + ' AND Family.social_grp = ''' + @SocialGroup + '''' END IF(@Minority <> '') BEGIN SET @vQuery = @vQuery + ' AND Family.minority = ''' + @Minority + '''' END insert into #tblagereoprt exec(@vQuery1) exec(@vQuery) SET @N = @N +1 END select * from #tblagereoprt drop table #tblagereoprt; END

提前付款

thanks in advance

推荐答案

你的表 #tblagereoprt

接受两个值,但是在插入时你正在使用查询的执行语句

is accepting two values, But while inserting you are using exec statement of query

@vQuery1

这只会给你一个结果。 试试这样 首先将结果保存在两个不同的变量中并同时插入两个变量。

which will give you only one result. try like this first save your results in two different variables and insert both at same time.

更多推荐

如何使用2 varchar类型查询在单个临时表中插入数据

本文发布于:2023-10-21 17:46:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1514927.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何使用   类型   数据   varchar

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!