PDA

View Full Version : delete Relations in sql server Automatically



SKazemi
دوشنبه 16 بهمن 1385, 08:24 صبح
من نیاز مبرم دارم که با یک اسکریپت به صورت خودکار(یا دستورات خط فرمان sqlکه من چیزی ندیدم) روابط تعریف شده بین جداول یک dbرا حذف کنم .
لطفا مرا راهنمایی کنید.
با سپاس فراوان

Kamyar.Kimiyabeigi
دوشنبه 16 بهمن 1385, 09:59 صبح
هر Relation در واقع یک Constraint است.
شما میتونی از کد زیر برای حذف کردن Relation استفاده کنی


ALTER TABLE TableName
DROP CONSTRAINT ConstraintName

برای اینکه نام Constraint مورد نظرتو پیدا کنی از کد زیر استفاده کن


SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS

SKazemi
سه شنبه 17 بهمن 1385, 08:27 صبح
ضمن سپاس از پاسخ شما.
من قبلا این کار را کرده ام ولی مشکل اینجاست که من یک سری رابطه را باید قطع کنم.
نام آنها را هم از sysobjectsمی توانم بگیرم ولی دستورdropکه شما هم آن را ذکر کرده اید
نمی تواند با یک نام متغیر مثلاaa@ که محتوای آن همان relation مورد نظر است کار کند.
لطفا در صورت امکان راهنماییم کنید.

Kamyar.Kimiyabeigi
سه شنبه 17 بهمن 1385, 09:07 صبح
DECLARE @ConstraintName VARCHAR(200)
EXECUTE('ALTER TABLE TableName ' +
'DROP CONSTRAINT ' + @ConstraintName)

SKazemi
سه شنبه 17 بهمن 1385, 11:28 صبح
ازراهنمایی شما سپاسگزارم.