كيفية الاستعلام عن الجداول التي تحتوي على عمود معين في SQL Server

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

في هذا المنشور، سنستعرض كيفية إنشاء استعلام SQL في SQL Server يسترجع جميع الجداول التي تحتوي على اسم عمود معين.

التحدي

افترض أنك تعمل مع قاعدة بيانات SQL Server كبيرة، وتحتاج إلى العثور على كل جدول يتضمن حقلًا يسمى Desired_Column_Name. بدلاً من استكشاف كل جدول واحدًا تلو الآخر، يمكن لاستعلام SQL أن يقوم بأتمتة هذه العملية، مما يوفر لك الوقت والجهد.

الحل: استعلام SQL

للحصول على قائمة شاملة من الجداول التي تحتوي على اسم عمود معين، ستستخدم العرض INFORMATION_SCHEMA.COLUMNS. يوفر هذا العرض النظامي ثروة من المعلومات حول كل عمود في قاعدة البيانات.

تفصيل الخطوات

إليك استعلام SQL الذي سيساعدك على تحقيق ذلك:

SELECT Table_Name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE Column_Name = 'Desired_Column_Name'
GROUP BY Table_Name

شرح مكونات الاستعلام

  1. SELECT Table_Name:

    • هذا الجزء من الاستعلام يحدد أننا نريد استرجاع أسماء الجداول.
  2. FROM INFORMATION_SCHEMA.COLUMNS:

    • INFORMATION_SCHEMA.COLUMNS هو عرض كاتلوجي نظامي يحتوي على صف لكل عمود في قاعدة البيانات. من خلال الاستعلام عن هذا العرض، يمكننا الوصول إلى معلومات مفصلة حول كل عمود، بما في ذلك اسمه والجدول الذي ينتمي إليه.
  3. WHERE Column_Name = ‘Desired_Column_Name’:

    • هنا، نحدد الشرط لتصفية الأعمدة التي تتطابق مع الاسم الذي حددته. استبدل 'Desired_Column_Name' بالاسم الفعلي للعمود الذي يهتمك.
  4. GROUP BY Table_Name:

    • نظرًا لأن جدولًا واحدًا قد يحتوي على أعمدة متعددة تحمل نفس الاسم (بسبب مخططات مختلفة)، نقوم بتجميع النتائج حسب Table_Name لضمان أن يتم إدراج كل جدول مرة واحدة فقط.

مثال عملي

دعنا نقول أنك تريد العثور على جميع الجداول التي تحتوي على عمود باسم EmployeeID. ستقوم بتنفيذ الاستعلام التالي:

SELECT Table_Name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE Column_Name = 'EmployeeID'
GROUP BY Table_Name

النتيجة

عند تنفيذ هذا الاستعلام، ستحصل على قائمة فريدة من أسماء الجداول التي تحتوي على عمود EmployeeID، مما يتيح لك تحديد المكان الذي تم تخزين هذه المعلومات فيه بسهولة في قاعدة البيانات الخاصة بك.

الخاتمة

لا يجب أن يكون البحث عن الجداول حسب اسم العمود في SQL Server مهمة شاقة. من خلال الاستفادة من عرض INFORMATION_SCHEMA.COLUMNS باستخدام استعلام SQL بسيط، يمكنك بسرعة الحصول على المعلومات التي تحتاجها.

مسلحًا بمعرفة هذه التقنية الفعالة للاستعلام، يمكنك تعزيز مهاراتك في إدارة قواعد البيانات وتبسيط عملية استكشاف البيانات الخاصة بك. استعلام سعيد!