奇怪的情况:我试图从我的代码中删除一些硬编码。有一种情况,我有一个字段,让我们说“CityID”,并使用这些信息,我想知道哪个表包含名为CityID的主键。动态确定在SQL服务器中给定字段名称的表名
从逻辑上讲,你可能会说它可能是一张名为“城市”的表格,但它不是......该表格被称为“城市”。数据库命名中还有一些不一致的地方,因此如果删除字符串“ID”并找出复数就足够了,我永远无法确定。
注意:一旦我发现CityID引用了一个名为Cities的表格,我将执行一个连接以将CityID替换为城市名称。如果有人能告诉我如何找到名字中的第一个varchar字段,我将不胜感激。
我可以弄清楚该列是PK还是FK?目前它返回多个表格,因为〜30个表格将该字段作为FK,但只有一个将该字段作为PK。 – 2010-05-07 15:38:37
@Salman A:为此我想你想看看'TABLE_CONSTRAINTS'和'CONSTRAINT_COLUMN_USAGE'(或者'KEY_COLUMN_USAGE')。这些观点在制定出什么地方的方面往往是相当可读的;看看我链接的文档。 – AakashM 2010-05-07 16:35:58