Sql server SQL Server多用户中的临时表是否安全?
临时表是线程的本地表还是服务器的全局表?创建一个#tentable在作用域中是本地的,但可以在嵌套的调用存储过程中共享Sql server SQL Server多用户中的临时表是否安全?,sql-server,Sql Server,临时表是线程的本地表还是服务器的全局表?创建一个#tentable在作用域中是本地的,但可以在嵌套的调用存储过程中共享\temp是会话作用域 ##temp是服务器范围 本地临时表可见 仅在当前会话中,以及 全局临时表对用户可见 所有会议 在中创建的本地临时表 存储过程被删除 当存储 程序完成了。这张桌子可以 被任何嵌套存储的 由存储系统执行的过程 创建表的过程。这个 表不能被用户引用 调用存储的 创建表的过程 所有其他本地临时表都是 在结束时自动删除 本届会议 全局临时表是 会话结束时自动删
\temp
是会话作用域##temp
是服务器范围
本地临时表可见
仅在当前会话中,以及
全局临时表对用户可见
所有会议
在中创建的本地临时表
存储过程被删除
当存储
程序完成了。这张桌子可以
被任何嵌套存储的
由存储系统执行的过程
创建表的过程。这个
表不能被用户引用
调用存储的
创建表的过程
所有其他本地临时表都是
在结束时自动删除
本届会议
全局临时表是
会话结束时自动删除
创建表结束和所有
其他任务已停止引用
他们。任务之间的关联
并且一个表仅为
单个Transact-SQL的生命周期
陈述这意味着一个全球性的
临时表被放置在
完成最后一个Transact-SQL
积极支持的声明
当
创建会话已结束
取决于“临时表”的含义。如果您是指带有
#
前缀的表,则它们的真实名称将包含连接ID,并且每个连接都是唯一的。但是,如果您在tempdb
数据库中手动创建一个表,它将被视为所有普通表
可以在表名之前使用哈希(#)符号创建本地临时表。它们仅在当前连接中可见。。当连接断开时,其作用域也结束。可以在两个不同的连接中同时创建和使用具有相同名称的本地临时表。为了允许这种行为,SQL Server将本地临时表的名称后缀为增量十六进制数字,当SQL服务重新启动时,将重置该数字
请参阅“@”临时表的工作原理与“#”临时表类似,但不能在定义它们的过程或批次之外引用。感谢您的澄清。这正是我需要的!