4
我已经习惯了看到只用哈希/数字符号创建临时表,就像这样:指定模式
CREATE TABLE #Test
(
[Id] INT
)
不过,我最近遇到的存储过程的代码,指定架构创建临时表时的名称,例如:
CREATE TABLE [dbo].[#Test]
(
[Id] INT
)
你有什么理由要这样做吗?如果你只是指定用户的默认模式,它有什么区别?这是否涉及本地数据库或tempdb数据库中的[dbo]
模式?
如果您在tempdb上创建了一个模式,并将该用户映射到具有该默认模式的tempdb,那么运行CREATE TABLE #test(v INT)会将该表创建为“** dbo **。#test”。尝试在dbo以外的模式下创建临时表会忽略您指定的模式,并在dbo模式中创建它。所以'CREATE TABLE dummy。#test(v INT)'也会创建“** dbo **。#test”。 – Jim