چگونه از جداول موقتی در SQL استفاده کنیم؟ یکی از قابلیت های SQL Server این است که شما می توانید بدون ساخت Database، جداولی را ایجاد کرده و با آن ها کار کنید. به این جداول اصطلاحاً جداول موقت یا Temporary Tables می گویند. برای ایجاد جداول موقت کافیست به صورت زیر یک جدول موقت ایجاد کنید:
دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
create table #TempUsers
(
[Id] int identity not null primary key,
[Username] nvarchar(200) not null,
[Password] nvarchar(100) not null,
[PasswordSalt] nvarchar(32) not null
);
go
دقت کنید که برای ساخت جداول موقت نیازی به ساخت Database نیست، کافیست در ابتدای نام جدول علامت # قرار دهید. حال، به راحتی می توان به صورت زیر در این جداول مقدار ریخت و از آن ها query گرفت:
insert into #TempUsers values (N'Hossein Ahmadi',N'123',N'123');
insert into #TempUsers values (N'Mohammad Nasiri',N'123',N'123');
و به صورت زیر از این جدول می توانیم Query بگیریم:
select * from #TempUsers
برای مثال، فرض کنیم می خواهیم از چند جدول اطلاعات را کوئری گرفته و در یک جدول موقت درج کنید تا بتوانیم بر روی آن عملیات های مورد نظرمان را انجام دهیم، برای اینکار به راحتی یک جدول موقت ایجاد کرده و اطلاعات را از یک جدول دیگر به صورت زیر می توانیم درج کنیم:
create table #TempUsers
(
[Id] int identity not null primary key,
[Username] nvarchar(200) not null,
[Password] nvarchar(100) not null,
[PasswordSalt] nvarchar(32) not null,
[FirstName] nvarchar(200) null,
[LastName] nvarchar(200) null
);
go
insert into #TempUsers (Username,Password,PasswordSalt,FirstName,LastName)
select
u.Username,
u.Password,
u.PasswordSalt,
up.FirstName,
up.LastName
from Users u
inner join UserProfiles up on up.UserId = u.Id
select * from #TempUsers where Username LIKE N'Hossein%'
کلیه جداول موقت در SQL Server، در Database ای با نام tempdb که جزو database ها پیش فرض SQL Server می باشد ایجاد می شوند. این بانک در زمان نصب SQL Server به صورت خودکار ایجاد می شود. یکی از قابلیت های جداول موقت این است که این جداول با اتمام کار (به اتمام رسیدن عملیات های Transaction) از tempdb حذف می شوند.