50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

نمایش relationship جداول در sql

سلام به همه اساتید گرامی

دوستان من یه برنامه دارم وقتی دیتابیس پر میشه خطای پرشدن دیتابیس میده یه برنامه نوشتم که کار تخلیه دیتابیس رو انجام میده یعنی در واقع برای این کار از دستور truncate استفاده کرده ام ولی چون دو جدولی که رکوردهاش تخلیه میشه باهم ارتباط دارند با خطا مواجه میشه من قبل هرچیز میخام‌ رابطه های جدول رو بیبینم بعد میخام رابطه بین جداول بعد از حذف رکوردها حفظ بشه ممنون میشم کامل منو راهنمایی کنید ، اول از همه لطف کنید راهنمایی کنید که چطور رابطه بین جداول رو ببینم ؟ بعد این که چطوری میشه این روابط رو به query تبدیل کرد که بعدا این query رو اجرا کنیم تا رابطه بین جداول حفظ بشه ، ممنون میشم راهنمایی کنید

پرسیده شده در 1397/01/08 توسط

2 پاسخ

0

اگر از ابزارهای دیگه ای مثل dbForge و.. استفاده نکنید بهترین راه برا دیدن ارتباطات جداول استفاده از Database Diagram خود sql هستش. بعدش هم که میتونید از روی دیاگرام تولید Create Table متناظرش رو انجام بدید.

پاسخ در 1397/01/15 توسط
1

سلام به شما دوست عزیز.

برای این که بتونید لیست ارتباطات رو به دست بیارید باید بتونید لیست کلید های خارجی و همچنین جداولی که این کلید خارجی رو دارند به دست بیارید. برای این کار باید کوئری زیر رو اجرا کنید.

SELECT
    fk.name 'FK Name',
    tp.name 'Parent table',
    cp.name, cp.column_id,
    tr.name 'Refrenced table',
    cr.name, cr.column_id
FROM 
    sys.foreign_keys fk
INNER JOIN 
    sys.tables tp ON fk.parent_object_id = tp.object_id
INNER JOIN 
    sys.tables tr ON fk.referenced_object_id = tr.object_id
INNER JOIN 
    sys.foreign_key_columns fkc ON fkc.constraint_object_id = fk.object_id
INNER JOIN 
    sys.columns cp ON fkc.parent_column_id = cp.column_id AND fkc.parent_object_id = cp.object_id
INNER JOIN 
    sys.columns cr ON fkc.referenced_column_id = cr.column_id AND fkc.referenced_object_id = cr.object_id
ORDER BY
    tp.name, cp.column_id
پاسخ در 1400/12/01 توسط

پاسخ شما