我有這樣如何通過查詢識別SQL Server中的1-1,1-M和M-N關係?
SELECT
RC.CONSTRAINT_NAME FKName,
KF.TABLE_SCHEMA FKSchema,
KF.TABLE_NAME FKTable,
KF.COLUMN_NAME FKColumn,
RC.UNIQUE_CONSTRAINT_NAME PKName,
KP.TABLE_SCHEMA PKSchema,
KP.TABLE_NAME PKTable,
KP.COLUMN_NAME PKColumn,
RC.MATCH_OPTION MatchOption,
RC.UPDATE_RULE UpdateRule,
RC.DELETE_RULE DeleteRule
FROM
[INFORMATION_SCHEMA].[REFERENTIAL_CONSTRAINTS] RC
JOIN
[INFORMATION_SCHEMA].[KEY_COLUMN_USAGE] KF ON RC.CONSTRAINT_NAME = KF.CONSTRAINT_NAME
JOIN
[INFORMATION_SCHEMA].[KEY_COLUMN_USAGE] KP ON RC.UNIQUE_CONSTRAINT_NAME = KP.CONSTRAINT_NAME
查詢,它有這樣一個結果:
FK_Person_Address dbo Person Id PK_Address dbo Address Id SIMPLE NO ACTION NO ACTION --[1-1] or [1-M] or [M-N] I need this!
我想認識什麼是關係的每一行1-1或1-M作爲類型有關係狀態的列。
[1-1]或[1-M]或[M-N]我需要這個!
任何人都可以引導我嗎?
編輯:
我爲什麼問這個問題?所以我看到一些像Reverse poco Generator和Entity Framework Power Tools Beta 4這樣的視覺工作室擴展可以將表格反轉到C#pocos,因此它們必須知道關係狀態1-1或1-M或MN,以便將導航屬性生成爲單個類或類的列表,並且還爲映射創建EntityTypeConfiguration他們如何從SQL服務器表中獲取這些信息?如果我們不知道任何有關表的關係,那麼我們不能將它們轉換爲C#類!
您*無法從單個查詢中確定關係的基數 - 您需要查看**表格結構**以及表格如何鏈接以及如何定義所涉及的列。 –
是的,這些工具通過查看錶結構知道關係**的基數!** –
您是否有任何示例我無法識別您的描述?我如何看待表格結構?用哪種技術或查詢? – Hamed