إنشاء طرق عرض والاستعلام بها

مكتمل

طرق العرض هي استعلامات محفوظة يمكنك إنشاؤها في قواعد البيانات الخاصة بك. يمكن أن تشير طريقة عرض واحدة إلى جدول واحد أو أكثر. و، تماما مثل الجدول، تتكون طريقة العرض من صفوف وأعمدة من البيانات. يمكنك استخدام طرق العرض كمصدر للاستعلامات بنفس طريقة استخدام الجداول. ومع ذلك، لا تخزن طرق العرض البيانات باستمرار؛ يتم فك تعريف طريقة العرض الخاصة بك في وقت التشغيل ويتم الاستعلام عن الكائنات المصدر.

يوفر التشابه الواضح بين الجدول وطريقة العرض فائدة مهمة. يمكن كتابة تطبيقاتك لاستخدام طرق العرض بدلا من الجداول الأساسية، ما يحمي التطبيق من إجراء تغييرات على الجداول. يوفر لك هذا طبقة إضافية من الأمان لبياناتك.

طالما تستمر طريقة العرض في تقديم نفس البنية إلى تطبيق الاستدعاء، سيتلقى التطبيق أيضا نتائج متسقة. بهذه الطريقة، يمكن اعتبار طرق العرض واجهة برمجة تطبيقات (API) لقاعدة بيانات لأغراض استرداد البيانات.

إشعار

يجب إنشاء طرق العرض بواسطة مطور قاعدة بيانات أو مسؤول لديه الإذن المناسب في قاعدة البيانات.

إنشَاء طريقة عرض

لإنشاء طريقة عرض، يمكنك استخدام عبارة CREATE VIEW لتسمية جملة SELECT واحدة وتخزينها. يمكنك إنشاء طريقة عرض باستخدام بناء الجملة التالي:

CREATE VIEW <schema_name.view_name> [<column_alias_list>] 
[WITH <view_options>]
AS select_statement;

إشعار

لا يسمح بجملة ORDER BY في تعريف طريقة العرض ما لم تستخدم طريقة العرض عنصر TOP أو OFFSET/FETCH أو FOR XML.

على سبيل المثال، لإنشاء طريقة عرض تسمى Sales.CustOrders استنادا إلى عبارة SELECT مخصصة تشمل جداول متعددة، يمكنك كتابة الاستعلام التالي:

CREATE VIEW Sales.CustOrders
AS
SELECT
  O.custid, 
  DATEADD(month, DATEDIFF(month, 0, O.orderdate), 0) AS ordermonth,
  SUM(OD.qty) AS qty
FROM Sales.Orders AS O
  JOIN Sales.OrderDetails AS OD
    ON OD.orderid = O.orderid
GROUP BY custid, DATEADD(month, DATEDIFF(month, 0, O.orderdate), 0);

لاحظ أن معظم التعليمات البرمجية داخل المثال تتكون من عبارة SELECT. يمكن أن تكون عبارات SELECT داخل تعريفات العرض معقدة أو بسيطة كما تريدها.

الاستعلام عن طريقة عرض

للاستعلام عن طريقة عرض واسترداد النتائج منها، ارجع إليها في عبارة FROM من عبارة SELECT، كما تشير إلى جدول. على سبيل المثال، لإرجاع معرف العميل وشهر الطلب وكمية العناصر من كل طلب في طريقة عرض Sales.CustOrders ، يمكنك تشغيل الاستعلام التالي:

SELECT custid, ordermonth, qty
FROM Sales.CustOrders;