我习惯于看到只用哈希/数字符号创建的临时表,如下所示:
CREATE TABLE #Test ( [Id] INT )
但是,我最近遇到了存储过程代码,它在创建临时表时指定了模式名称,例如:
CREATE TABLE [dbo].[#Test] ( [Id] INT )
你有什么理由要这么做吗?如果您只是指定用户的默认架构,它会有什么不同吗?这是指本地数据库或tempdb数据库中的[dbo]模式吗?
解决方法
如果您指定用户默认架构,它将没有任何区别,但如果用户默认架构更改,那么它将尝试将临时表保留在dbo架构中.
临时表是在tempdb中创建的,这意味着您需要在tempdb中维护模式,并且没有任何好处.