القيود اليتيمة في قاعدة بيانات سكل سيرفر
-
15-11-2019 - |
سؤال
يؤدي تشغيل الاستعلام التالي إلى جميع القيود في قاعدة بيانات عملائنا.ومع ذلك ، يبدو أن العديد من الصفوف في مجموعة النتائج لا تحتوي على أحد الوالدين ، أي. 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
لم أكن على علم بهذه الصيغة ، والتي على ما يبدو سيتم إزالتها في إصدار مستقبلي من سكل سيرفر ، وفقا للمادة مسن المذكورة أعلاه.