Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server tempdb永久表用例_Sql Server_Tempdb_Temp Tables - Fatal编程技术网

Sql server SQL Server tempdb永久表用例

Sql server SQL Server tempdb永久表用例,sql-server,tempdb,temp-tables,Sql Server,Tempdb,Temp Tables,tempdb数据库中是否有永久表的用例?所谓永久,我的意思是不使用#或##,而是在tempdb中创建一个真正的表。我知道重新启动sql服务会清除tempdb,但是这种做法会因为其他原因而不好吗 我这样问是因为我有一个这样的用例,我需要一个临时表,但它将被打开超过一个sql连接范围 编辑:长寿命临时表中的实际数据是序列化文件,而不是基于排序规则或其他任何内容的数据为什么不在数据库中创建一个名为“temp”(或Staging)的模式,并在该模式中创建长寿命临时表呢。e、 g create schem

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

我这样问是因为我有一个这样的用例,我需要一个临时表,但它将被打开超过一个sql连接范围


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

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

create schema [temp] 
     authorization [dbo]

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

更新:对于您的额外信息,您可以使用吗?(SQL Server 2008以后的版本)

由于许多原因,这个想法不太好,例如,如果数据库和tempdb(服务器)的排序规则不匹配,那么隐式字符串比较可能会失败

为什么它必须恰好位于tempdb上?
除了发布的所有其他备选方案之外,为什么不创建一个共享数据库来保存这个表呢

我建议采用另一种方法的主要原因是,由于SQL Server对tempdb的使用次数太多,tempdb已经成为一个瓶颈。我不建议再找一个理由把东西插入tempdb


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

因为temp表中的数据将用于通过网络从服务器传输文件(序列化,然后使用sql select读取字节),我所说的文件实际上是指数据库备份,因为tempdb已经存在于所有客户的主数据库旁边,因此仅仅为此创建另一个数据库似乎需要很大的开销