我习惯于看到仅使用哈希/数字符号创建的临时表,如下所示:
CREATE TABLE #Test
(
[Id] INT
)
但是,我最近遇到了在创建临时表时指定架构名称的存储过程代码,例如:
CREATE TABLE [dbo].[#Test]
(
[Id] INT
)
您有什么理由想要这样做吗?如果您只指定用户的默认架构,这有什么区别吗?这是指本地数据库还是 tempdb 数据库中的 [dbo]
架构?
最佳答案
如果您指定用户默认架构,则不会有任何区别,但如果用户默认架构发生更改,那么它将尝试将临时表保留在 dbo 架构中。
临时表是在 tempdb 中创建的,因此(即使您可以,正如 Jim 在评论中指出的那样),这意味着您需要在 tempdb 中维护架构,并且没有任何好处。
关于sql - 指定临时表的架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8311959/