كيفية تغيير المخطط اسم الجدول في جميع الإجراءات المخزنة

StackOverflow https://stackoverflow.com/questions/101463

  •  01-07-2019
  •  | 
  •  

سؤال

أنا أعرف كيفية تغيير مخطط الجدول في SQL server 2005:

ALTER SCHEMA NewSchama TRANSFER dbo.Table1

ولكن كيف يمكنني التحقق و/أو تغيير الإجراءات المخزنة التي تستخدم القديم مخطط الاسم ؟

آسف:أعني:هناك الإجراءات المخزنة القديمة المخطط اسم الجدول في sql الإجراء المخزن...كيف يمكنني تحرير جميع الإجراءات المخزنة التي dbo.جدول1 في الجسم الإجراء...

هل كانت مفيدة؟

المحلول

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

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

نصائح أخرى

  • استخدام المهام>إنشاء البرامج النصية في SSMS إلى تقديم سلسلة من إنشاء مجلد البرامج النصية.
  • استخدام Find & Replace (Alt - ح) إلى تغيير 'إنشاء' إلى 'تغيير '
  • استخدام F & R إلى تغيير 'dbo.Table1' إلى 'dbo.Table2'
  • ثم تنفيذ (F5) تعديل جميع المتضررين SPs.

بسيطة لكنها فعالة.

تعلن @SearchObject VARCHAR(100)

مجموعة @SearchObject = 'searchable_table_name' -- تغيير 'searchable_table_name' إلى اسم الجدول ما تريد البحث

حدد sc.اسم [البحث عن وجوه] لذلك.اسم [كائن حاوية],
الحالة لذلك.اسم عندما 'U' ثم 'جدول' عندما 'P' ثم 'الإجراء المخزن' عندما 'و' ثم 'دالة معرفة من قبل المستخدم' آخر 'الآخر' نهاية كما [كائن حاوية نوع]

من sysobjects حتى

INNER JOIN syscolumns sc على ذلك.id = sc.معرف

حيث sc.name LIKE '%' + @SearchObject + '%' وهكذا.اسم في ('U','P','F') -- U :الجدول P :الإجراء المخزن F:معرف المستخدم وظائف(udf)

النظام [كائن حاوية] ASC

-- عرض الإجراءات المخزنة التي تحتوي على اسم الجدول المطلوب.

حدد النص من syscomments حيث نص مثل '%من ' + @SearchObject + '%'

(Select id من sysobjects حيث type='ع' و name = ")

-- عرض محتوى محدد الإجراء المخزن (من فوق)

--Exec sp_helptext 'DeleteAssetByID'

على سبيل المثال أنا خلقت الجدول التقارير بشكل افتراضي dbo المخطط سيتم تعيين, الآن إذا كنت ترغب في تغيير مخطط التقارير الجدول أولا سوف أقوم بإنشاء مخطط جديد اسمه التقارير:

CREATE SCHEMA Reporting

ثم سيتم تنفيذ أدناه النصي إلى تغيير المخطط التقارير الجدول من dbo إلى الإبلاغ:

ALTER SCHEMA Reporting TRANSFER dbo.Reports 

أو من أجل فهم أفضل:

ALTER SCHEMA 'newSchema' TRANSFER 'oldSchema'.'table'
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top