#SQL服务器数据完整性表?
问题描述:
可能重复:
Local and Global temporary table in SQL SERVER#SQL服务器数据完整性表?
我想知道是否有任何人可以给我一个更好的解释在SQL #tables的工作。
在我们的一个存储过程中,我们创建了一个临时表(#table),其中数据由当前活动的存储过程存储。为了讨论起见,我们称这个为Sproc1。
Sproc1被称为sproc2。调用之后,sproc2从#table中收集数据,然后删除#table,因为它不再需要。
这一切理论上都行之有效,但如果两个或二十个人在同一时间调用/执行sproc2呢?
所以,我想知道SQL是否会创建一个新的实例(通过连接链接)的#table为每个调用者使用sproc2或将有冲突?
答
当你创建一个表,一个散列标签(如在你的例子) - 只有创建将有机会获得它,当关闭连接会被自动删除连接。
如果您需要确保所有连接都可以看到它,则可以使用全局临时表(## table),但在连接关闭时它们也会被删除,因此请确保您不要假设它存在于您的过程中。