sql - 指定临时表的架构

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

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

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/

相关文章:

sql - 1条记录如何存储亲属关系信息

c# - 如何将内联 SQL 转换为 SQL Server 中的存储过程

.net - SQL Server 数据库可以在事务期间应答吗?

sql-server - 如何在 MS SQL 2005 中删除除最新 20,000 条记录之外的所有记录?

c# - 如何防止 SQL Server 存储过程与 EF 并发执行?

sql - 显示两个日期之间的所有日期数据;如果特定日期不存在行,则所有列中显示零

SQL:如何在删除重叠后为每个时间记录获取正确的资源时间

sql - 有没有一种方法可以在Microsoft SQL Server中使用SQL Server Powershell搜索列?

sql-server - 在 where 条件下使用 Sql server 列别名

sql-server-2005 - [Sql-Server]密码salt和hash值使用什么数据类型,长度是多少?