Tsql SQL事务中#的含义

Tsql SQL事务中#的含义,tsql,Tsql,您好,我正在检查安装在我公司的产品的一些商店程序,您知道,看看其他人是如何解决问题和学习的 在这其中我找到了这个,但我不知道在sql sp中的行select distinct objecttype from中的#CascadeCollect的含义是什么,请发表评论 这是整个sp。。 开始 --获取临时表中收集的所有唯一OTC。 声明@EntityCode int --检查实体是否需要特殊外壳。 声明@DbCascadeMask int --日历删除的特殊大小写 执行p_删除日历 为声明otccu

您好,我正在检查安装在我公司的产品的一些商店程序,您知道,看看其他人是如何解决问题和学习的

在这其中我找到了这个,但我不知道在sql sp中的行select distinct objecttype from中的#CascadeCollect的含义是什么,请发表评论

这是整个sp。。
开始
--获取临时表中收集的所有唯一OTC。
声明@EntityCode int
--检查实体是否需要特殊外壳。
声明@DbCascadeMask int
--日历删除的特殊大小写
执行p_删除日历
为声明otccursor游标
从#CascadeCollect中选择distinct objecttype前缀为#的表是本地临时表,一旦超出范围,它将被删除

create table #test(id int)

insert #test values (1)

select * from #test
如果从另一个连接运行此操作,则该表不可用,因为它是本地的

作为前缀的单个
#表示本地范围的临时对象。在这种情况下,它显然是一个表,但也可以有
#temp
过程

它仅对创建它的批(以及任何子批)可见,并在批退出时自动删除

因此,如果这是整个存储过程,那么它显然应该从实际创建临时表的另一个过程运行

您还可以将全局临时对象的前缀设置为
##

create table #test(id int)

insert #test values (1)

select * from #test