خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


منظور از Temporary Table یا جداول موقت در SQL Server

منظور از Temporary Table یا جداول موقت در SQL Server
در این پست کوتاه در خصوص جداول موقت در SQL Server صحبت خواهیم کرد(البته در پست های بعدی هم در خصوص نحوه ایجاد انها در SQL Server خواهیم پرداخت ولی ابتدا به خودِ جدول موقت می پردازیم). جداول موقت که با نام های Temp Table و یا temporary Table هم نام آنها مشاهده می کنید، نوع خاصی از جدال هستند که برای مقاصد خاصی استفاده می شوند. این جدول با یک جدول معمولی (دائمی) متفاوت است که در ادامه توضیحات کامل تری در این خصوص خواهیم داد.

سیستم یکپارچۀ سازمانی راهکار
استفاده از جداول موقت مزایایی دارد که در ذیل آنها را ملاحظه خواهید کرد.



جداول موقتی می توانند در مواقعی که نیاز به اجرای چندین کوئری در مقابل زیرمجموعه ای از یک Result set بزرگتر دارید، مفید باشند. برای قرار دادن زیر مجموعه داده ها در یک جدول موقت می توانید از SELECT ... INTO با یک عبارت WHERE استفاده کنید. سپس می توانید کوئری هایی را برای آن جدول موقت اجرا کنید. این کار باعث می شود شما مجبور نشوید دائماً داده ها را از Result set بزرگتر تنظیم شده هنگام انجام چندین کوئری، فیلتر کنید.
جداول موقت نیز می توانند از منظر مجوزها مفید باشند. اگر شما نیاز به کار با داده های یک جدول دائمی را در SQL دارید اما مجوز کافی برای انجام تمام عملیات مورد نیاز را ندارید، می توانید این داده ها را در یک جدول موقت کپی کنید (با فرض اینکه دسترسی در Read را دارید) و هر کاری که لازم است انجام دهید .
اگر مجوز ایجاد جدول(دائمی) در دیتابیس فعلی را ندارید، می توانید از جداول موقت برای کار خود استفاده کنید.
شما بدون نگرانی می توانید جداول موقت را DROP کنید ولی جداول دائمی، اطلاعات بصورت دائم در آنها ثبت می شوند و حذف آنها می تواند طبعات بسیار جدی ای به دنبال داشته باشد.

TempDB

جداول موقت در دیتابیس TempDB ایجاد می شوند. TempDB یک پایگاه داده سیستمی است که اشیاء موقتی کاربر از جمله جداول موقت، index ها موقت، stored procedure های موقت، متغیرهای جدولی، cursor ها و غیره.. را در خود ذخیره می کند. همچنین اشیاء داخلی ایجاد شده توسط database engine و نسخه ها را ذخیره می کند. هر کاربری می تواند جداول موقتی را در TempDB ایجاد کند. برای دسترسی به TempDB نیازی به پیکربندی Permission ها و مجوزهای خاصی نیست.

Syntax

Syntax ایجاد جداول موقت در SQL مانند جداول دائمی می باشد. تفاوت در این است که جداول موقت با یک یا دو پیشوند # را در خود دارند.
جداول موقت Local، یک علامت # پیش نام خود داشته و جداول موقت Global دارای دو علامت ## پیش نام جدول هستند.
ایجاد جدول موقت لوکال:

CREATE TABLE #LocalTableName (
col1 int PRIMARY KEY,
col2 varchar(255)
);

ایجاد جدول موقت عمومی یا Global:

CREATE TABLE ##GlobalTableName (
col1 int PRIMARY KEY,
col2 varchar(255)
);

جداول موقت لوکال در Session فعلی و جداول موقت Global در تمامی Session ها قابل مشاهده هستند.


با استفاده از دستور DROP TABLE می توانید جدول موقت را جذف کنید.
دقیقاً زمانی که یک جدول موقت به طور خودکار حذف می شود ، به Local یا Global بودن جدول موقت بستگی دارد و اینکه آیا در stored procedure ی ایجاد شده است یا خیر.
یک جدول موقت که در یک stored procedure ایجاد شده، با پایان یافتن کار stored procedure، به صورت خودکار هم حذف می شود. تمام جداول موقت local در پایان Session فعلی به طور خودکار حذف می شوند. جداول موقت Global، با پایان session ای که آن را ایجاد کرده و ارجاعات بدان به اتمام رسیده باشد، حذف می شوند.

Schema

تمامی جداول موقت در Schema dbo ایجاد می شوند. اگر شما به طور واضح Schema دیگری را مشخص کنید، این Schema نادیده گرفته می شود.

Foreign Keys

FOREIGN KEY ها در جداول موقت اعمال نمی شوند. اگر یک FOREIGN KEY برای جدول موقت تعیین کنید، جدول بدون ایجاد کلید خارجی، هنوز ایجاد می شود.


نمایش دیدگاه ها (1 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز