一个临时表可不可以横跨向个过程?

ShapeRock 2003-10-16 02:40:52
rt.就是在几个过程中都调用与改写这个临时表的中数据。如果能,怎么实现?最好举个例子。
...全文
21 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2003-10-16
  • 打赏
  • 举报
回复
不过,要注意,因为临时表是全局的,因此,创建前要检查是否有人已经创建了.否则在多用户环境下会产生冲突.
zjcxc 2003-10-16
  • 打赏
  • 举报
回复
用全局临时表就可以了.

创建临时表的时候,用:
create table ##临时表名(....)
pengdali 2003-10-16
  • 打赏
  • 举报
回复
但建议:

create table #a (结构和返回结构相同)

insert #a exec xx

select * from #a
pengdali 2003-10-16
  • 打赏
  • 举报
回复
#局部临时表的生命周期的会话!!##全局临时表的生命周期是全局它是会冲突的!

你可以打开两个查询分析器,一个查询分析器的连接算是一个会话!
你分别创建两个同名的临时表是不会发生错误的!
而你别创建两个同名的全局临时表是会发生错误的!
yujohny 2003-10-16
  • 打赏
  • 举报
回复
有本地和全局两种类型的临时表,二者在名称、可见性和可用性上均不相同。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 Microsoft® SQL Server™ 2000 实例断开连接时被删除。全局临时表的名称以数学符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。

例如,如果创建名为 employees 的表,则任何人只要在数据库中有使用该表的安全权限就可以使用该表,除非它已删除。如果创建名为 #employees 的本地临时表,只有您能对该表执行操作且在断开连接时该表删除。如果创建名为 ##employees 的全局临时表,数据表中的任何用户均可对该表执行操作。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果该表在您创建后有其他用户使用,则 SQL Server在所有用户断开连接后删除该表。
yujohny 2003-10-16
  • 打赏
  • 举报
回复
##temp 这类全局临时表,当然可以跨过程了
aierong 2003-10-16
  • 打赏
  • 举报
回复
当存储过程完成时,将自动除去在存储过程中创建的本地临时表
aierong 2003-10-16
  • 打赏
  • 举报
回复
use pubs
go
create proc proc_ai
as
select * into ##tem from jobs
go
create proc proc_aii
as
select * from ##tem

--run
execute proc_ai
execute proc_aii
aierong 2003-10-16
  • 打赏
  • 举报
回复

ok

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧