Han*_*etz 16 mysql sql-server portability rdbms
最近,我开始将一些应用程序更改为支持MS SQL Server
作为替代后端.
我遇到的一个兼容性问题是使用MySQL的CREATE TEMPORARY TABLE来创建内存表,这些表在会话期间保存数据以实现非常快速的访问,而无需永久存储.
MS SQL中的等价物是什么?
一个要求是我需要能够像使用其他临时表一样使用临时表,尤其是JOIN
永久表.
Kei*_*ith 18
您可以创建表变量(在内存中)和两种不同类型的临时表:
--visible only to me, in memory (SQL 2000 and above only)
declare @test table (
Field1 int,
Field2 nvarchar(50)
);
--visible only to me, stored in tempDB
create table #test (
Field1 int,
Field2 nvarchar(50)
)
--visible to everyone, stored in tempDB
create table ##test (
Field1 int,
Field2 nvarchar(50)
)
Run Code Online (Sandbox Code Playgroud)
编辑:
根据反馈,我认为这需要一点澄清.
#table
并且##table
将永远是在tempdb.
@Table
变量通常在内存中,但不保证是.SQL根据查询计划决定,并在需要时使用TempDB.
归档时间: |
|
查看次数: |
28118 次 |
最近记录: |