آموزش فعال و غیر فعال کردن CONSTRAINT ها بر روی دیتابیس
بسم الله الرحمن الرحیم
فعال و غیرفعال کردن CONSTRAINT در SQL
یکی از مشکلاتی که بسیاری از دوستان دارند، فعال و غیرفعال کردن تمامی constraint ها بر روی یک دیتابیس است. شاید این مشکل برای شما نیز بارها و بارها به وجود آمده باشد که بخواهید یک دیتابیس را بر روی یک دیتابیس دیگر Map کنید در این جا وقتی اولویت انتقال اطلاعات را رعایت نکنید مثلا ابتدا اطلاعات جداول فرزند را انتقال دهید و سپس جداول پدر خطاهایی مربوط به عدم شناسایی کلید خارجی و کلید اصلی و... نمایش داده می شود. در این حال بنده مشاهده کرده ام که دوستان معمولا با حذف Relation ها و یا قیود آنها کار خود را انجام می دهند اما علاوه بر این کارها می توانید از روش های ساده دیگری نیز استفاده کنید.
امروز شما را با چند کد ساده برای این کار آشنا خواهیم کرد.
-- Disable all table constraints
ALTER TABLE YourTableName NOCHECK CONSTRAINT ALL
-- Enable all table constraints
ALTER TABLE YourTableName CHECK CONSTRAINT ALL
-- ----------
-- Disable single constraint
ALTER TABLE YourTableName NOCHECK CONSTRAINT YourConstraint
-- Enable single constraint
ALTER TABLE YourTableName CHECK CONSTRAINT YourConstraint
-- ----------
-- Disable all constraints for database
EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
-- Enable all constraints for database
EXEC sp_msforeachtable "ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"
فکر می کنم کدها به اندازه کافی گویا هستند و نیازی نیست که بخواهیم آنها را توضیح دهید فقط کافی است به جای نام های مشخص شده، نام جداول، دیتابیس و یا CONSTRAINT خود را بنویسید.
اگر سوالی بود در همین قسمت مطرح کنید.
نظرات (۱)
با عرض سلام
متاسفانه سوال شما را متوجه نشدم، لطفا سوالتان را واضح تر بیان کنید.
باتشکر