7

在我的服务器代码中,我创建了一个临时(名为#temp)表,插入一些数据,然后删除临时表。如果超过 1 个用户同时运行这部分代码(创建临时表),sql server 2008 会为每个用户创建一个临时表还是创建 1 个“全局”临时表?如果它是一个表,我认为当同一个表被多次创建时我会遇到麻烦?

4

1 回答 1

8

来自MSDN

您可以创建本地和全局临时表。本地临时表只在当前会话中可见,全局临时表对所有会话可见
……
如果在存储过程或应用程序中创建了一个本地临时表,可以由多个用户同时执行,则数据库引擎必须能够区分不同用户创建的表。数据库引擎通过在每个本地临时表名称内部附加一个数字后缀来实现此目的。存储在 tempdb 中 sysobjects 表中的临时表的全名由 CREATE TABLE 语句中指定的表名和系统生成的数字后缀组成。为允许后缀,为本地临时名称指定的 table_name 不能超过 116 个字符。

于 2012-07-04T07:11:42.007 回答