خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
ایجاد جدول موقت بر اساس جدول دیگر در SQL Server
در SQL Server شما می توانید یک جدول موقت بر اساس جدول دیگری ایجاد کنید. می توانید جدول را با داده های جدول مورد نظر یا بدون آن ایجاد کنید. به عبارت دیگر ، در صورت تمایل می توانید داده ها را از جدول اصلی کپی کنید ، یا می توانید جدول را بدون هیچ گونه داده ای ایجاد کنید. در ادامه مثال هایی از این توضیحات را خواهید دید که چگونه می توانیم به این مهم برسیم.
همانطور که مشاهده می کنید با استفاده از Select INTO موفق به اینکار شدیم و جدول موقت مد نظرمان هم ایجاد شد. حالا به اطلاعات جدول موقت ایجاد شده که در کوئری فوق، رکوردهای جدول Cat در آن ذخیره شده، نگاه می کنیم:
در صورت نیاز می توانید خروجی رکوردها در Result set را با WHERE فیلتر کنید.
در این مثال، از WHERE 1 = 0 استفاده شد تا هیچ رکوردی بازگردانده نشود.
Example 1 - Create Table With Data
در اینجا مثالی از ایجاد جدول موقت بر اساس یک جدول ثابت و کپی کردن همه داده ها و رکوردهایی که در جدول وجود دارند را در این فرآیند خواهید دید.USE Test;
SELECT
CatId,
CatName,
Phone
INTO #TempCatsAllData
FROM dbo.Cats;
همانطور که مشاهده می کنید با استفاده از Select INTO موفق به اینکار شدیم و جدول موقت مد نظرمان هم ایجاد شد. حالا به اطلاعات جدول موقت ایجاد شده که در کوئری فوق، رکوردهای جدول Cat در آن ذخیره شده، نگاه می کنیم:
SELECT * FROM #TempCatsAllData;
در صورت نیاز می توانید خروجی رکوردها در Result set را با WHERE فیلتر کنید.
Create Table Without Data
حالا جدول موقت بر اساس یک جدول دیگر ایجاد می کنیم ولی این بار هیچ رکوردی را در آن Insert نمی کنیم.USE Test;
SELECT
CatId,
CatName,
Phone
INTO #TempCatsNoData
FROM dbo.Cats
WHERE 1 = 0;
در این مثال، از WHERE 1 = 0 استفاده شد تا هیچ رکوردی بازگردانده نشود.
Check the Tables
در این مثال قرار است دو جدول موقت را با جدول اصلی مقایسه شود. برای اینکار از View سیستمی sys.columns در پایگاه داده اصلی (برای جدول اصلی) و در پایگاه داده tempdb (برای جداول موقت) استفاده خواهد شد.USE Test;
SELECT
name AS [Column Name],
TYPE_NAME(user_type_id) AS [Data Type],
max_length,
[precision],
scale,
is_nullable
FROM sys.columns
WHERE OBJECT_NAME(object_id) = 'Cats';
USE tempdb;
SELECT
name AS [Column Name],
TYPE_NAME(user_type_id) AS [Data Type],
max_length,
[precision],
scale,
is_nullable
FROM sys.columns
WHERE OBJECT_NAME(object_id) LIKE '#TempCatsAllData%';
SELECT
name AS [Column Name],
TYPE_NAME(user_type_id) AS [Data Type],
max_length,
[precision],
scale,
is_nullable
FROM sys.columns
WHERE OBJECT_NAME(object_id) LIKE '#TempCatsNoData%';
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: