我的数据库是在SQL Server&我想在asp.net,LINQ,C#
中获取输出我有2个表链接到1个表(1:1)
我的问题是,我可以将主键链接到哪个表吗?
例如:
了解ID
中与哪个表关联的tbl_Document
的最佳方法是什么?
我可以在tbl_Document
中添加记录为'whichTable'并在每列中写下表的名称,每次我想搜索设置“if”并检查'WhichTable'。
有更好的方法吗?
谢谢,抱歉我的英语不好:)
答案 0 :(得分:0)
默认情况下,您只能获得对父表具有外键约束的所有表:
select object_name(f.referenced_object_id) pk_table, c1.name pk_column_name,
object_name(f.parent_object_id) fk_table, c2.name fk_column_name
from
sys.foreign_keys f
join sys.columns c1 on c1.object_id = f.referenced_object_id
join sys.columns c2 on c2.object_id = f.parent_object_id
join sys.foreign_key_columns k
on (k.constraint_object_id = f.object_id
and c2.column_id = k.parent_column_id
and c1.column_id = k.referenced_column_id )
where object_name(f.referenced_object_id) ='tbl_Document'
没有关于父表中每个特定行的附加信息。这将是一个重复的信息(因为你可以通过在每个子表中搜索来找出它)。因此,正如您所提到的,您可以将子表名存储在附加列中,然后作为选项,动态构造sql以查询子行。