SQL Server tempdb永久表用例

时间:2012-02-20 10:31:45

标签: sql-server tempdb temp-tables

在tempdb 数据库中是否有永久表的用例?永久性我的意思是不使用#或##,而是在tempdb中创建一个真实的表。我知道重新启动sql服务会擦除tempdb,但这种做法会因为其他原因而变坏吗?

我问,因为我有一个用例,我需要一个临时表,但是这将是一个sql连接跨度的开放。

编辑:长生命临时表中的实际数据是序列化文件,而不是基于整理或其他任何内容的数据

4 个答案:

答案 0 :(得分:2)

为什么不在数据库中创建名为“temp”(或Staging)的模式,并在该模式中创建长期临时表。 e.g。

create schema [temp] 
     authorization [dbo]

create table [temp].[MyTempTable]
(
   Id int,
   [name] varchar(50),
   ... SomeColumns ...
)

更新:为了回应您的额外信息,您可以使用FILESTREAM吗? (SQL Server 2008起)

答案 1 :(得分:1)

这个想法并不是很好,例如 - 如果您的数据库和tempdb(服务器)的排序规则不匹配 - 隐式字符串比较可能会失败

答案 2 :(得分:1)

为什么它必须完全在tempdb上? 除了发布的所有其他替代方案之外,为什么不创建一个共享数据库来保存此表?

答案 3 :(得分:1)

我建议采用不同方法的主要原因是因为tempdb已经成为瓶颈,因为SQL Server使用它的次数。我不建议找到将内容插入tempdb的另一个原因。

除此之外,tempdb与任何其他位置一样好,并且具有额外的好处,即在服务重新启动后,您留下的任何内容都将被清除。