永続テーブル、ビュー、およびログオン トリガーを使用して、Oracle スタイルの一時テーブルと同様の動作をするものを作成できます。
create table dbo._Data (
Session int not null constraint DF__Data DEFAULT (@@SPID),
ColumnA int not null,
ColumnB int not null
)
go
create view dbo.Data (
ColumnA,
ColumnB
)
with schemabinding
as
select
ColumnA,
ColumnB
from
dbo._Data
where
Session = @@SPID
with check option
go
create trigger T_Data_Logon_Cleardown
ON ALL SERVER
FOR LOGON
AS
delete from Database.dbo.Data
go
dbo.Data
次に、 「テーブル」に対してすべてのアクションを実行します。
これには、各セッションの行が分離されているという特徴があり、切断して再接続すると「テーブル」は空になります。
得られないのは、トランザクション境界での行の自動クリアです (それが望ましいオプションである場合は、手動で削除する必要があります)。また、新しいセッションが古いセッション ID を要求するまで行がテーブルに残るため、まったく同じというわけではありません (したがって、クリーンアップは後で行われます)。しかし、クライアントの観点からは、「十分に近い」かもしれません。