【发布时间】:2026-01-24 07:15:01
【问题描述】:
我正在尝试确定表上外键的名称,但我得到了错误的值。如果我使用这个示例 SQL
CREATE TABLE Address
(
id INT NOT NULL PRIMARY KEY,
street VARCHAR NOT NULL
);
CREATE TABLE Person
(
id INT NOT NULL PRIMARY KEY,
orgId INT NOT NULL REFERENCES dbo.Organization (id)
);
SELECT tbl.name TableName, col.name ColumnName, fk.name ForeignKey
FROM sys.tables tbl
JOIN sys.columns col ON tbl.object_id = col.object_id
LEFT OUTER JOIN sys.foreign_keys fk ON tbl.object_id = fk.parent_object_id
WHERE tbl.name = 'Person'
它告诉我ForeignKey 名称对于Person 表的id 和orgId 列是相同的。显然我错过了一个额外的连接条件,但我一生都无法弄清楚它是什么。
【问题讨论】:
-
能否将 tbl.object_id 和 tbl.schema_id 添加到选择列表中?
标签: sql-server foreign-keys database-schema