指定临时表的模式

时间:2011-11-29 13:59:02

标签: sql sql-server sql-server-2005 tsql

我习惯于看到只用哈希/数字符号创建的临时表,如下所示:

CREATE TABLE #Test
(
    [Id] INT
)

但是,我最近遇到了存储过程代码,它在创建临时表时指定了模式名称,例如:

CREATE TABLE [dbo].[#Test]
(
    [Id] INT
)

你有什么理由想要这样做吗?如果您只是指定用户的默认架构,它会有什么不同吗?这是指本地数据库中的[dbo]模式还是tempdb数据库?

1 个答案:

答案 0 :(得分:10)

如果 指定用户默认架构,那将没有任何区别,但如果用户默认架构更改,那么它将尝试将临时表保留在dbo架构中。

临时表是在tempdb中创建的,这意味着您需要在tempdb中维护架构,并且没有任何好处。