جداول Temp راه حل هوشمندانه ای هستند که می توانید برای ساده کردن پرس و جوها و عملیات پیچیده استفاده کنید.
جداول موقت SQL Server داده ها را به طور موقت ذخیره می کنند. میتوانید همان عملیاتی مانند SELECT، INSERT، DELETE، و UPDATE را روی یک جدول موقت مانند یک جدول SQL معمولی انجام دهید.
جداول Temp در پایگاه داده tempdb زندگی می کنند و فقط در طول مدت اتصال قابل مشاهده هستند. هنگامی که اتصال را قطع می کنید، SQL Server جدول موقت را حذف می کند. همچنین می توانید آن را در هر زمانی به صراحت حذف کنید.
انواع جداول Temp Server SQL
دو نوع جدول موقت SQL Server وجود دارد: محلی و سراسری.
جدول دمای محلی
جدول زمانی محلی فقط برای اتصالی که آن را ایجاد کرده قابل مشاهده است. هنگامی که آن اتصال به پایان می رسد، یا کاربر از نمونه SQL Server قطع می شود، یک جدول موقت محلی به طور خودکار حذف می شود.
برای ایجاد یک جدول موقت محلی، از یک علامت هش منفرد (#) در ابتدای نام جدول با دستور CREATE TABLE استفاده کنید. در اینجا نحو است.
CREATE TABLE #TempTable (
Column1 INT,
Column2 VARCHAR(50)
);
به عنوان مثال، کد زیر یک جدول موقت به نام TempCustomer با نام و فیلد ایمیل ایجاد می کند.
CREATE TABLE #TempCustomer (
ID int NOT NULL PRIMARY KEY
FullName VARCHAR(50),
Email VARCHAR(50)
);
جدول دمای جهانی
جدول دمای جهانی یک جدول موقتی است که برای همه اتصالات و کاربران قابل مشاهده است. زمانی که تمام اتصالات و کاربرانی که به جدول اشاره می کنند قطع شوند، SQL Server آن را حذف می کند.
برای ایجاد یک جدول temp سراسری، پیشوند نام جدول را با هش های دوگانه (##) قرار دهید و از دستور CREATE TABLE استفاده کنید.
CREATE TABLE ##TempTable (
Column1 INT,
Column2 VARCHAR(50)
);
کد زیر یک جدول temp سراسری با نام TempCustomer ایجاد می کند.
CREATE TABLE ##TempCustomer (
ID int NOT NULL PRIMARY KEY
FullName VARCHAR(50),
Email VARCHAR(50)
);
این کد شبیه به مثال جدول موقت محلی است، فقط با دو نماد هش به جای یک. اکنون می توانید از دستورات استاندارد SQL برای اضافه کردن یا دستکاری داده ها در جدول موقت استفاده کنید.
چگونه یک جدول دما را رها کنیم
نمونه SQL Server به طور خودکار یک جدول موقت را هنگامی که همه کاربرانی که به آن ارجاع می دهند قطع شده اند، حذف می کند. به عنوان بهترین روش، همیشه باید جداول temp خود را به صراحت رها کنید تا حافظه tempdb آزاد شود.
برای رها کردن جدول موقت، از عبارت DROP TABLE IF EXISTS و به دنبال آن نام جدول موقت استفاده کنید.
در اینجا نحوه حذف جدول #TempCustomer آمده است:
DROP TABLE IF EXISTS #TempCustomer
از همان کد استفاده کنید، اما نام جدول را عوض کنید تا جدول دمای جهانی را رها کنید.
DROP TABLE IF EXISTS ##TempCustomer
استفاده های معمول از جداول موقت SQL
جداول Temp زمانی مفید هستند که شما نیاز به ذخیره نتایج میانی پرس و جوهای پیچیده دارید که باید بیشتر پردازش کنید. به عنوان مثال، هنگام ایجاد گزارش، ممکن است نیاز به ایجاد جداول موقت برای ذخیره نتایج پرس و جو از چندین پایگاه داده داشته باشید. سپس می توانید با اجرای یک پرس و جو در برابر جداول موقت، گزارش نهایی را ایجاد کنید.
سناریوی دیگری که در آن جداول موقت مفید هستند، زمانی است که برای اجرای پرس و جوی دیگر به نتایج پرس و جو از یک جدول نیاز دارید. می توانید نتایج را در یک جدول موقت ذخیره کنید و سپس به آن در پرس و جوی جدید خود ارجاع دهید. اساساً، شما از جدول temp به عنوان جدول کاری یا بافر برای نگهداری داده هایی که برای انجام یک کار خاص نیاز دارید استفاده می کنید.
استفاده از جداول Temp در SQL Server
می توانید از جداول موقت SQL Server برای ذخیره و پردازش موقت داده ها استفاده کنید. دو نوع جدول زمانی وجود دارد، محلی و جهانی. یک جدول موقت محلی برای اتصالی که در آن ایجاد شده است قابل مشاهده است در حالی که یک جدول دمای جهانی در تمام اتصالات قابل مشاهده است.
جداول Temp به طور خودکار زمانی که از نمونه سرور جدا می شوید از بین می روند. با این حال، برای حفظ حافظه، همیشه باید آنها را پس از استفاده رها کنید.