关于临时表的探讨!贴子接龙~~ 怎么没有人回复,too low lever 了吗/? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 临时表的分为全局临时表和局部临时表全局临时表当数据shutdown的时候,数据库系统自动删除局部临时表当用完的时候,系统删除@@全局临时表 @局部临时表 h_S2000(处理器)说的不完全正确。全局临时表当数据库shutdown的时候,数据库系统自动删除局部临时表当创建该临时表的事务结束的时候,系统删除它们都存储在 tempdb 中## 是全局临时表的前缀# 是局部临时表的前缀 if object_id('tempdb..#temp') is not null drop table #tempelse select * into #temp from a 1)对于你的问题,应该不会冲突除非你用##全局临时表,你可以打开两个查询分析器,在查询分析器中一次登陆,等于一次会话!你可以分别在两个中写:select * #aa from 表两边不回冲突的!但如果你在同一个查询分析器中,第二次运行时就会报对象已存在的错! (打字累.....)现在你知道了吧!2)局部临时表的生命周期是会话!当你的一次会话结束时就自动被删除了!在同一会话中要用两次的话要显示的写drop table #aa就OK了! 局部临时表其时并不好用。当你建军表#aa是,表名其实并不是#aa。系统自动在#aa后加了一串字符。所以当你再次想用#aa访问这张表时,你其它找不到它。因你它并不叫#aa所以我用时都用GUID建一张全局的。并把表名存进一个全局变量。这样以后才可以再访问。 VB6.0: ... conn.Execute ("create table #temptaskidtable (taskid int)") conn.execute ("insert into #temptaskidtable (taskid) (select taskid from aaa where...)") infosql = "select * from #temptaskidtable" With rs .Open infosql, strConn, adOpenKeyset, adLockOptimistic .... 运行到rs.open时,错误:[Microsoft][ODBC SQL Server Driver][SQL Server]对象名 '#temptaskidtable' 无效。查询分析器: create table #temptaskidtable (taskid int) insert into #temptaskidtable (taskid) (select taskid from aaa where... select * from #temptaskidtable go 运行成功!这是为什么??我是了好多次了?就是不行!怪事年年有,今年特别多!各位大虾帮帮我?!谢谢!! 我试过了 开两各查询分析器!有冲突!为什么? create table #temptaskidtables (taskID bigint PRIMARY KEY not null) sql server 2000的临时表信息保存在哪里?我想在创建临时表之前,删除同名的临时表!但要先判断它的存在性!怎么办?谢谢所有对此贴表示同情和关注的人 你搞错了吧!开两各查询分析器!有冲突吗??我怎么没有!!第一个:select * into #aa from pubs..jobs第二个:select * into #aa from pubs..jobs你上面的都只执行一次如果没错就对了!! 临时表保存在 tempdb 中,局部临时表只要在同一个进程中不重名就可以,全局临时表只要在一次 Server 启动中不重名就可以。 在甲查询分析其中 create table #a (taskid int) 后新开一个乙查询分析器,查看乙的tempdb中的用户表,确实有一个 #a____________________________000aaccdd..的临时表;然后在乙中select * from #a或select * from tempdb.#a或select * from #a____________________________000aaccdd都会提示临时表名对象无效!?为什么?不是还没释放吗?why? 局部临时表 即 #temptable 创建的时候是存放在temp数据库中,它的真正表名是我们创建的临时表名后面加上一长串'_',再加上进程id号。所以两个用户同时创建同名的临时表,是不会冲突的。 如果想判断临时表是否存在: declare @o_id int select @o_id = object(temp..#temptable) if @o_id is not null print '临时表#temptable存在' 删除临时表 和上面同理 DTS包执行正常,调度后的作业不能正常执行,急! asp+mssql 第一打开很慢很慢,第二次就快很多了 sql语句优化 关于自定义排序的问题? 关于 使用 NOT EXISTS 的性能问题. 一个备份作业总是报错 一个恢复sql7.0的简单问题 马上给分 数据筛选出需要的数据 [求助]想取得每个月有多少条记录的语句该怎样写? 如何把上面的a行对应的数据更新到b行? 如何得到SQL Server数据库表中字段的描述信息? 临时表问题
@局部临时表
全局临时表当数据库shutdown的时候,数据库系统自动删除
局部临时表当创建该临时表的事务结束的时候,系统删除
它们都存储在 tempdb 中## 是全局临时表的前缀
# 是局部临时表的前缀
drop table #temp
else
select * into #temp from a
select * #aa from 表
两边不回冲突的!但如果你在同一个查询分析器中,第二次运行时就会报对象已存在的错!
(打字累.....)现在你知道了吧!
2)局部临时表的生命周期是会话!当你的一次会话结束时就自动被删除了!
在同一会话中要用两次的话要显示的写
drop table #aa
就OK了!
当你建军表#aa是,表名其实并不是#aa。系统自动在#aa后加了一串字符。
所以当你再次想用#aa访问这张表时,你其它找不到它。因你它并不叫#aa
所以我用时都用GUID建一张全局的。并把表名存进一个全局变量。这样
以后才可以再访问。
...
conn.Execute ("create table #temptaskidtable (taskid int)")
conn.execute ("insert into #temptaskidtable (taskid) (select taskid from aaa where...)")
infosql = "select * from #temptaskidtable"
With rs
.Open infosql, strConn, adOpenKeyset, adLockOptimistic
....
运行到rs.open时,错误:[Microsoft][ODBC SQL Server Driver][SQL Server]对象名 '#temptaskidtable' 无效。
查询分析器:
create table #temptaskidtable (taskid int)
insert into #temptaskidtable (taskid) (select taskid from aaa where...
select * from #temptaskidtable
go
运行成功!
这是为什么??
我是了好多次了?就是不行!怪事年年有,今年特别多!
各位大虾帮帮我?!
谢谢!!
开两各查询分析器!有冲突!为什么?
create table #temptaskidtables (taskID bigint PRIMARY KEY not null)
我想在创建临时表之前,删除同名的临时表!但要先判断它的存在性!怎么办?
谢谢所有对此贴表示同情和关注的人
第一个:
select * into #aa from pubs..jobs
第二个:
select * into #aa from pubs..jobs你上面的都只执行一次如果没错就对了!!
select * from #a或select * from tempdb.#a或
select * from #a____________________________000aaccdd
都会提示临时表名对象无效!?为什么?不是还没释放吗?why?
如果想判断临时表是否存在:
declare @o_id int
select @o_id = object(temp..#temptable)
if @o_id is not null
print '临时表#temptable存在'
删除临时表 和上面同理