a

ABLY مقالات و مطالب مجموعه

آموزش فعال و غیر فعال کردن CONSTRAINT ها بر روی دیتابیس

آموزش فعال و غیر فعال کردن CONSTRAINT ها بر روی دیتابیس

بسم الله الرحمن الرحیم

فعال و غیرفعال کردن CONSTRAINT در SQL

بسم الله الرحمن الرحیم

فعال و غیرفعال کردن 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 خود را بنویسید.

اگر سوالی بود در همین قسمت مطرح کنید.

نظرات

  • Hannah Martinez
    مهدی
    دو شنبه 11 دی 1278 0:00

    اقا من چندتا از صحات سایتم سفید شده


    در دیتابیس وقتی روی ریپر کلیک میکنم همه ok میشه غیر از 2 مورد عیب از این 2 موره من چگونه باید برطرفش کنم

    • Judith Bell
      پاسخ
      حسینبهزادی
      دو شنبه 11 دی 1278 0:00

      با عرض سلام

      متاسفانه سوال شما را متوجه نشدم، لطفا سوالتان را واضح تر بیان کنید.

      باتشکر

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :Phone Number
0713 625 1757 :Phone Number