كيفية تغيير عمود محسوب إلى عمود عادي في SQL Server

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

فهم الأعمدة المحسوبة

قبل أن نبدأ في الحل، من الضروري فهم ما هو العمود المحسوب.

  • عمود محسوب: العمود المحسوب في SQL Server هو عمود افتراضي يتم اشتقاقه من تعبير يتضمن أعمدة أخرى في نفس الجدول. يتم حساب قيمه تلقائيًا كلما تم استرجاع صف أو تعديله.
  • مثال: على سبيل المثال، إذا كان لديك عمود full_name مشتق من أعمدة first_name و last_name، يقوم SQL Server بحساب full_name كلما استعلامت عن الجدول.

الآن، دعنا نستكشف الخطوات اللازمة لتغيير عمود محسوب إلى عمود عادي مع الحفاظ على القيم الحالية.

الحل خطوة بخطوة

الخطوة 1: إضافة عمود جديد إلى الجدول

الخطوة الأولى هي إنشاء عمود جديد في الجدول الحالي الخاص بك والذي سيحتوي في النهاية على القيم التي كانت في العمود المحسوب. إليك كيفية القيام بذلك:

ALTER TABLE YourTableName ADD NewColumnName DataType;

استبدل YourTableName باسم جدولك، و NewColumnName باسم العمود الجديد، و DataType بنوع البيانات المرغوب (مثل VARCHAR، INT، إلخ) بناءً على القيم المتوقعة.

الخطوة 2: نسخ البيانات من العمود المحسوب

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

UPDATE YourTableName SET NewColumnName = ComputedColumnName;

تأكد من استبدال ComputedColumnName باسم العمود المحسوب الفعلي الذي تنسخ منه البيانات.

الخطوة 3: حذف العمود المحسوب

الآن بعد أن تم تخزين القيم في العمود الجديد، يمكنك حذف العمود المحسوب القديم. سيفرغ هذا مساحة في جدولك وينهي عملية التحويل:

ALTER TABLE YourTableName DROP COLUMN ComputedColumnName;

الخطوة 4: إعادة تسمية العمود الجديد (اختياري)

إذا كنت تريد أن يكون للعمود الجديد نفس اسم العمود المحسوب القديم للحفاظ على التناسق، يمكنك استخدام:

EXEC sp_rename 'YourTableName.NewColumnName', 'ComputedColumnName', 'COLUMN';

ملخص العملية

لتغيير عمود محسوب إلى عمود غير محسوب، اتبع هذه الخطوات البسيطة:

  1. إضافة عمود جديد إلى الجدول.
  2. نسخ البيانات من العمود المحسوب إلى العمود الجديد.
  3. حذف العمود المحسوب.
  4. (اختياري) إعادة تسمية العمود الجديد للاحتفاظ بالاسم الأصلي.

الخاتمة

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

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