求高手 解答存储过程?一直报错,看看哪错了 5

•CREATEproceduredbo.usp_hbbb•@rq_Svarchar(10),•@rq_Evarchar(10),... •CREATE procedure dbo.usp_hbbb
• @rq_S varchar (10),
• @rq_E varchar (10),
• @tmptable varchar(1000) --动态临时表
•as
•declare
• @str nvarchar (4000)
• --检查数据是否存在,存在则删除该表。
• exec('if exists(select * from tempdb.dbo.sysobjects where name='''+@tmptable+''')
• drop table ‘+@tmptable) ---每次调用存储过程前先清除上次调用的结果
• set @str=
• ' select kchz.ckdm as khdm,spdm,case when kcsl is null then 0 else kcsl end as
•kcsl,'+
• ' case when xssl is null then 0 else xssl end as xssl, case when xsje is null then 0 else xsje end as xsje
•into '+@tmptable+'
• from (select vw_ckjxcmx.ckdm,spdm, sum(sl)as kcsl from vw_ckjxcmx where
•vw_ckjxcmx.qrrq <='''+@rq_E+''' and qr=''1'' group by spdm,vw_ckjxcmx.ckdm) as kchz left
•JOIN
• (select spdm as spdm2,dm2,sum(sl) as xssl,sum(je) as xsje from vw_lsxhmx where
• rq >='''+@rq_S+''' and rq<= '''+@rq_E+''' and vw_lsxhmx.sh=''1'' group by dm2,spdm) AS lshz
• ON kchz.ckdm = lshz.dm2 and kchz.spdm=lshz.spdm2'
• print @str
• exec(@str)
• return
展开
 我来答
百度网友2f686ca21
2013-09-05 · 超过15用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:43万
展开全部
exec('if exists(select * from tempdb.dbo.sysobjects where name='''+@tmptable+''')
• drop table ‘+@tmptable) ---每次调用存储过程前先清除上次调用的结果

如果此语句执行成功,那么@tmptable就不存在了,后面的 select into '+@tmptable 就不能执行了

改成 delete from table ‘+@tmptable)
匿名用户
2013-08-24
展开全部
你那个临时表做参数,也要定义它的结构啊,谁知道它有什么字段呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
下扬州啊
2013-08-26 · TA获得超过2519个赞
知道大有可为答主
回答量:4870
采纳率:40%
帮助的人:2126万
展开全部
错误提示是什么?
把你• print @str
的内容发一个上来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式