ویو (View) در SQL Server چیست؟
ویو (View) در SQL Server یک جدول مجازی است که شامل ستونها و ردیفهایی از جداول مرجع میباشد. ویو دادهها را به صورت مستقیم ذخیره نمیکند مگر اینکه ایندکس شده باشد. بنابراین، هر بار که از یک ویو با دستور SELECT استفاده میکنید، دادهها از جداول اصلی خوانده میشوند.
ویوها به شما امکان میدهند تا:
دادهها را بر اساس نیاز کاربران سادهسازی کنید؛
دسترسی کاربران را به کل دیتابیس محدود کنید و امنیت را افزایش دهید.
نحوه ایجاد ویو در SQL Server
استفاده از دستور CREATE VIEW
مثال زیر یک ویو به نام EmployeesViewbyQuery ایجاد میکند که اطلاعاتی از جدول MyEmployees Table و Department را با هم ترکیب میکند:
CREATE VIEW EmployeesViewbyQuery AS
SELECT
[FirstName] + ' ' + [LastName] AS Name,
[Occupation],
[Education],
dept.DepartmentName AS Department,
[YearlyIncome] AS Income,
[Sales]
FROM [MyEmployees Table]
INNER JOIN Department AS dept ON dept.[id] = [MyEmployees Table].DeptID;
GO
برای مشاهده دادهها:
SELECT * FROM [dbo].[EmployeesViewbyQuery];
ایجاد ویو با استفاده از SQL Server Management Studio (SSMS)
ویو فقط در دیتابیس جاری قابل ایجاد است.
حداکثر ۱۰۲۴ ستون میتواند داشته باشد.
مراحل:
در SSMS، روی پوشه Views در دیتابیس راستکلیک و گزینه New View را انتخاب کنید.
جداول مورد نیاز (مثلاً MyEmployees Table و Department) را اضافه کنید.
ستونهای مورد نظر را انتخاب و در صورت نیاز، روابط (JOIN) را تعریف کنید.
میتوانید ترتیب مرتبسازی (ORDER BY) را با انتخاب Ascending یا Descending تعیین کنید.
کوئری ساخته شده را اجرا و سپس ذخیره کنید.
تغییر نام ویو در SQL Server
با استفاده از SSMS
روی ویو راستکلیک و گزینه Rename را انتخاب کنید.
نام جدید را وارد کنید.
با استفاده از دستور sp_rename
EXEC sp_rename 'OldViewName', 'NewViewName';
مثال:
EXEC sp_rename 'EmployeesViewbyStudio', 'EmployeesVwName';
ویرایش ویو در SQL Server
با SSMS
روی ویو راستکلیک و گزینه Design را انتخاب کنید.
تغییرات مورد نظر را اعمال و ذخیره کنید.
با دستور ALTER VIEW
مثال تغییر ویو برای نمایش ۱۰ رکورد برتر با مرتبسازی چندگانه:
ALTER VIEW [dbo].[EmployeesViewbySQLSMS] AS
SELECT TOP 10
emp.FirstName,
emp.LastName,
emp.Education,
emp.Occupation,
Dept.DepartmentName,
emp.YearlyIncome,
emp.Sales
FROM dbo.Department AS Dept
INNER JOIN dbo.[MyEmployees Table] AS emp ON Dept.id = emp.DeptID
ORDER BY emp.YearlyIncome DESC, emp.Sales DESC;
GO
مشاهده تعریف ویو View
برای مشاهده کد تعریف ویو از دستور زیر استفاده کنید:
EXEC sp_helptext 'EmployeesViewbyQuery';
حذف ویو در SQL Server
با استفاده از SSMS
روی ویو راستکلیک و گزینه Delete را انتخاب کنید.
در پنجره باز شده، میتوانید وابستگیها را مشاهده و سپس حذف را تایید کنید.
با استفاده از دستور DROP VIEW
قبل از حذف بهتر است وجود ویو را بررسی کنید:
IF OBJECT_ID('dbo.EmployeesVwbyQuery', 'V') IS NOT NULL
DROP VIEW dbo.EmployeesVwbyQuery;
GO
نکات کلیدی در استفاده از ویوها
ویوها دادهها را ذخیره نمیکنند مگر ایندکس شده باشند، بنابراین همیشه دادهها از جداول اصلی خوانده میشوند.
ویوها میتوانند دسترسی کاربران را محدود کنند و امنیت دادهها را افزایش دهند.
استفاده از ویو باعث سادهسازی کوئریها و افزایش خوانایی کد میشود.
هنگام تغییر ویو، وابستگیهای آن را در نظر بگیرید.
دیدگاهتان را بنویسید