PDA

View Full Version : سوال: بدست آوردن رابطه جدول های SQL SERVER در c#



hhhassan
جمعه 06 بهمن 1391, 00:54 صبح
با سلام
می خوام رابطه بین جدول ها را با کد بدست بیارم. منظورم کلید اصلی و کلید خارجی است.

RED-C0DE
جمعه 06 بهمن 1391, 11:04 صبح
با این کوئری:
DECLARE @TableName SYSNAME = 'dbo.MyTableNameHere'

SELECT 'Parent tables' AS TableConnectionType,
OBJECT_SCHEMA_NAME(referenced_object_id) AS obj_schema_name,
OBJECT_NAME(referenced_object_id) AS obj_name
FROM sys.foreign_keys
WHERE parent_object_id = OBJECT_ID(@TableName)

UNION

SELECT 'Child tables' AS TableConnectionType,
OBJECT_SCHEMA_NAME(parent_object_id) AS obj_schema_name,
OBJECT_NAME(parent_object_id) AS obj_name
FROM sys.foreign_keys
WHERE referenced_object_id = OBJECT_ID(@TableName)

یا برای جزئیات بیشتر ب این لینک ی سر بزن :
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=145340

hhhassan
جمعه 06 بهمن 1391, 15:43 عصر
با تشکر از RED_CODE عزیز
با کمک کد ایشون کد زیر را نوشتم

select 'Child tables' AS TableConnectionType,
OBJECT_NAME(constraint_object_id) as relation_Name,
OBJECT_NAME(parent_object_id) as Table_Name,
sys.columns.name as column_Name
from sys.foreign_key_columns,sys.columns
where sys.foreign_key_columns.parent_object_id=sys.colum ns.object_id
and sys.foreign_key_columns.parent_column_id=sys.colum ns.column_id
union
select 'Parent tables' AS TableConnectionType,
OBJECT_NAME(constraint_object_id) as relation_Name,
OBJECT_NAME(referenced_object_id) as Table_Name,
sys.columns.name as column_Name
from sys.foreign_key_columns,sys.columns
where sys.foreign_key_columns.referenced_object_id=sys.c olumns.object_id
and sys.foreign_key_columns.referenced_column_id=sys.c olumns.column_id