Delphi中删除临时表的问题分析

我现在的程序需要用一个全局临时表##temp暂存查询结果(因为试过了,局部的#temp不可用),即语句:select*into##tempfrom......第一次查询很... 我现在的程序需要用一个全局临时表 ##temp 暂存查询结果(因为试过了,局部的#temp不可用),即语句:select * into ##temp from......
第一次查询很快就会查出结果,而第二次就会提示“数据库名称##temp已存在”,所以我需要在每次点击查询按钮后将已存在的##temp删除,现在问题来了, 我预先删除##temp的话(使用if exists ...tempdb..##temp....drop table ##temp 两种判断临时表存在的方法),就会提示“##temp表无效”
所以现在程序处在进退两难中
展开
 我来答
last_wolf1860
2012-11-28 · TA获得超过640个赞
知道小有建树答主
回答量:482
采纳率:100%
帮助的人:354万
展开全部
建议使用存储过程创建临时表,存储过程要素:
1.创建前,检测是否存在临时表,如果存在,则drop;
2.完成创建逻辑后,使用Select返回数据集,调用无任何障碍。
sxdtgsh
2012-11-28 · TA获得超过2221个赞
知道小有建树答主
回答量:913
采纳率:75%
帮助的人:807万
展开全部
你可以 判断是否存在,不存在则创建
if not exists ...tempdb..##temp....
create table ##temp
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
师嗣gM
2012-11-28
知道答主
回答量:7
采纳率:0%
帮助的人:6.4万
展开全部
可以先删除
Drop ##temp
再查询
select * into ##temp from

虽然会报那个错,但其实没关系,你可以把错误屏蔽了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
h5233366
2012-11-28 · 超过14用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:34.5万
展开全部
## 开头的临时表 只有当重启数据库时才会删掉
# 开头的临时表 是当你执行完存储过程后自动删掉
还有想问一下 一是调用的存储过程么????
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
whycools101
2012-12-03
知道答主
回答量:11
采纳率:100%
帮助的人:9692
展开全部
使用全局临时表是很不明智的做法,别人在用的时候会有冲突。完全可以用临时表,业务逻辑都放在存储过程里就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式