当这个Query关闭之后,这个表仍在,
当这个Query所在的窗体关闭之后,这个表仍在
只到应用程序关闭,它才消失,
临时表的生命周期到底有多长?????????????
9 个解决方案
#1
一般是一次会话期间,当你的会话一直保持的时候表就一直存在。
对于共享数据库的程序使用临时表是危险的,因为尽管创建者不同,但是表的名字如果不特别区别的话总是一样的。因为你总是以一个数据库用户来连接所有的客户应用程序,如果别的客户没有退出数据库的话,数据库总认为这个会话还在连接,不会自动消除。这个是我在oracle中的经验,sqlserver不知道是否一样
对于共享数据库的程序使用临时表是危险的,因为尽管创建者不同,但是表的名字如果不特别区别的话总是一样的。因为你总是以一个数据库用户来连接所有的客户应用程序,如果别的客户没有退出数据库的话,数据库总认为这个会话还在连接,不会自动消除。这个是我在oracle中的经验,sqlserver不知道是否一样
#2
退出这个存储过程就结了;
#3
实际上在query执行完以后,临时表就应该完了,你说的情况应该是在delphi下,query把数据下到本地机上的现象!
#4
直到服务器重启。
#5
如果你是使用会话(事务)Transaction,那应该在Commit或者是RollBack之后,局部临时表就删除了,而且只针对当前会话有效;如果你没有使用事务控制语句,那应该是在程序退出之后。
#6
应该是在一个会话期间,一般是程序推出以后
#7
在Server的查询器中,换一个查询框都会提示临时表不存在
我用
try
drop table #..
except
end;
Select ... into #.... from ....
可以解决问题,但我想确切的知道临时表的生命周期有多长?
我用
try
drop table #..
except
end;
Select ... into #.... from ....
可以解决问题,但我想确切的知道临时表的生命周期有多长?
#8
看你是局部临时表还是全局临时表了,
局部临时表的生命期就是调用进程的生命期,调用过程返回后,表就消失了.
局部临时表的生命期就是调用进程的生命期,调用过程返回后,表就消失了.
#9
局部临时表
#1
一般是一次会话期间,当你的会话一直保持的时候表就一直存在。
对于共享数据库的程序使用临时表是危险的,因为尽管创建者不同,但是表的名字如果不特别区别的话总是一样的。因为你总是以一个数据库用户来连接所有的客户应用程序,如果别的客户没有退出数据库的话,数据库总认为这个会话还在连接,不会自动消除。这个是我在oracle中的经验,sqlserver不知道是否一样
对于共享数据库的程序使用临时表是危险的,因为尽管创建者不同,但是表的名字如果不特别区别的话总是一样的。因为你总是以一个数据库用户来连接所有的客户应用程序,如果别的客户没有退出数据库的话,数据库总认为这个会话还在连接,不会自动消除。这个是我在oracle中的经验,sqlserver不知道是否一样
#2
退出这个存储过程就结了;
#3
实际上在query执行完以后,临时表就应该完了,你说的情况应该是在delphi下,query把数据下到本地机上的现象!
#4
直到服务器重启。
#5
如果你是使用会话(事务)Transaction,那应该在Commit或者是RollBack之后,局部临时表就删除了,而且只针对当前会话有效;如果你没有使用事务控制语句,那应该是在程序退出之后。
#6
应该是在一个会话期间,一般是程序推出以后
#7
在Server的查询器中,换一个查询框都会提示临时表不存在
我用
try
drop table #..
except
end;
Select ... into #.... from ....
可以解决问题,但我想确切的知道临时表的生命周期有多长?
我用
try
drop table #..
except
end;
Select ... into #.... from ....
可以解决问题,但我想确切的知道临时表的生命周期有多长?
#8
看你是局部临时表还是全局临时表了,
局部临时表的生命期就是调用进程的生命期,调用过程返回后,表就消失了.
局部临时表的生命期就是调用进程的生命期,调用过程返回后,表就消失了.
#9
局部临时表