سؤال

يؤدي تشغيل الاستعلام التالي إلى جميع القيود في قاعدة بيانات عملائنا.ومع ذلك ، يبدو أن العديد من الصفوف في مجموعة النتائج لا تحتوي على أحد الوالدين ، أي. parent_object_id = 0 و OBJECT_NAME(parent_object_id) المرتجعات NULL.

SELECT name, type_desc, OBJECT_NAME(parent_object_id), parent_object_id
FROM sys.objects
WHERE is_ms_shipped = 0
AND type_desc LIKE '%_CONSTRAINT'

هل هذا يعني أن هناك قيودا يتيمة في قاعدة البيانات?لو ذلك, كيف يمكنني إزالة هذه?

من أسمائهم ، أستطيع أن أرى أنها بقايا من قبل كمية كبيرة تم إجراء تغييرات على الهيكل.

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

المحلول

باستخدام sp_helptext أستطيع أن أرى أنها تم إنشاؤها باستخدام CREATE DEFAULT بيان ، على سبيل المثال.:

CREATE DEFAULT dbo.MyDefault AS 2

هذا يعني أنها ببساطة افتراضات غير منضم ، والتي يمكن ربطها باستخدام sp_binddefault وفقا ل مسن, ، وإزالتها مع بسيطة DROP DEFAULT بيان:

DROP DEFAULT dbo.MyDefault

لم أكن على علم بهذه الصيغة ، والتي على ما يبدو سيتم إزالتها في إصدار مستقبلي من سكل سيرفر ، وفقا للمادة مسن المذكورة أعلاه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top