PDA

View Full Version : تشخیص relation بین 2 تا table دیتابیس



djscsi
دوشنبه 21 آذر 1390, 20:40 عصر
دوستان چه طوری میشه از توی کد تشخیص داد که 2 تا table دیتابیس با هم ریلیشن دارن یا نه
ممنون

djscsi
سه شنبه 22 آذر 1390, 16:16 عصر
چرا اینو انتقالش دادین اینجا.
من کد c# می خام و باید با کد نویسی تو محیط c# تشخیص داده بشه فکر نکنم ربطی به اینجا داشته باشه
ممنون

یوسف زالی
سه شنبه 22 آذر 1390, 20:52 عصر
سلام.
تالار صحیح همین جاست.
برای تشخیص ارتباط بین جداول باید از کدهای T-SQL استفاده کنید(اگر دی بی شما SQL هست).

create function HasRelation(@Tbl1 varchar(100), @Tbl2 varchar(100))
returns bit
as
begin
return case when exists(
select object_name(B.parent_object_id) Relations
from sys.tables A
join sys.foreign_keys B on A.object_id= B.referenced_object_id
where A.name = @Tbl1 and object_name(B.parent_object_id)= @Tbl2
union
select object_name(B.referenced_object_id)
from sys.tables A
join sys.foreign_keys B on A.object_id= B.parent_object_id
where A.name = @Tbl1 and object_name(B.referenced_object_id)= @Tbl2
)then 1 else 0 end
end

soroushp
سه شنبه 22 آذر 1390, 21:56 عصر
دستورات بالا رو تو visual studio بنویسیم ؟

tazarvmmr
چهارشنبه 23 آذر 1390, 02:03 صبح
دستورات بالا رو تو visual studio بنویسیم ؟

شما باید این فانکشن رو از داخل برنامت صدا کنی و بعنوان پارامتر اسم جداولی که میخوای ببینی با هم ارتباطی دارند یا نه رو بهش پاس کنی، مقداری که برمیگردونه مشخص میکنه که این جداول ارتباط دارن یا نه، اگر 1 برگردونه یعنی ارتباط دارند و اگر صفر برگردونه یعنی ارتباطی ندارند

البته دقت کن که این فانکشن توی دیتابیست باید ایجاد بشه، و میتونی از طریق یک کوئری اجراش کنی