对SQLServer的临时表一直是一知半解,
所以今天在给别人说临时表的时候出错了,
幸好做了一下测试发现了记错了。
临时表有两种,前缀1个#的本地临时表,和前缀2个#的全局临时表。比如
#tableName 本地临时表
##tableName 全局临时表
1)本地临时表 (可见性和生存周期)
只在当前用户会话中可见
当前用户断开,本地临时表会被自动删除
在存储过程里创建的本地临时表,在存储过程外不可访问,存储过程执行结束时,本地临时表会被自动删除
存储过程里创建的本地临时表对所有嵌套的存储过程是可见的,但对于调用创建该本地临时表的存储过程而言是不可见的
sqlserver能自动区分由多个用户同时创建的本地临时表 (规定本地临时表的名字长度最大为 116个字符)
2)全局临时表 (可见性和生存周期)
在所有会话中均可见
创建全局临时表的会话结束之后,在最后一个引用该全局临时表的最后一条SQL语句结束之后,自动删除全局临时表