标题:[求助]如何判断临时表是否存在?
只看楼主
cyc308
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2005-5-26
 问题点数:0 回复次数:5 
[求助]如何判断临时表是否存在?

如何判断SQL临时表是否存在?
如何判断表是否存在?

搜索更多相关主题的帖子: SQL 判断 
2007-02-07 14:24
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
得分:0 
if object_id('tempdb..#a') is not null
print 'exists'
else
print 'not exists'
临时表存在tempdb数据库中,你照着这个判断吧

26403021 sql群 博客 blog./user15/81152/index.shtml
2007-02-07 14:37
cyc308
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2005-5-26
得分:0 

为什么这个存储过程无法判断#a8临时表是否存在呢?
CREATE PROCEDURE test_temptable AS
if object_id('tempdb..#a8') is null
begin
select * into #a8 from c_admin
end
GO

2007-02-07 16:48
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
得分:0 

因为#a8不是在这个存储过程中创建的!

临时表只在当前的connection内能查到

你可以试试 在查询分析器里面开2个连接窗口,
windows1:

select col1= 1 into #1

select * from #1

if object_id('tempdb..#1') is not null
print 'exists'
else
print 'not exists'

会得到 exist2

这时候不drop #1, 去windows2 运行:
if object_id('tempdb..#1') is not null
print 'exists'
else
print 'not exists'

会看到 not exist


也就是说对于临时表 只有创建它的connection才能看见它


2007-02-07 17:12
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
得分:0 

create table ##a(id int)

if object_id('tempdb..##a') is not null
print 'exists'
else
print 'not exists'

使用全局临时表,当连接断开后,全局临时表也会消失

[此贴子已经被作者于2007-2-7 18:17:30编辑过]


26403021 sql群 博客 blog./user15/81152/index.shtml
2007-02-07 18:07
smilerapple
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-1-29
得分:0 
真是厉害啊
2007-02-07 18:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-120050-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045677 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved