Sql server 2008,是临时表唯一的

Emi*_*nem 7 sql temp-tables sql-server-2008

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

Mar*_*rtW 8

来自MSDN:

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

  • 同样来自MSDN:带有单个数字符号(#table_name)的前缀本地临时表名称,以及带有双重数字符号(## table_name)的全局临时表名称前缀. (2认同)