HuB*_*eZa 6 foreign-keys sql-server-2008
我浏览了一个遗留数据库,发现了一些引用列的外键.引用的列是主键列.
ALTER TABLE [SchemaName].[TableName] WITH CHECK ADD
CONSTRAINT [FK_TableName_TableName] FOREIGN KEY([Id])
REFERENCES [SchemaName].[TableName] ([Id])
Run Code Online (Sandbox Code Playgroud)
它是什么意思?
Mar*_*ith 15
ALTER TABLE [SchemaName].[TableName] WITH CHECK ADD
CONSTRAINT [FK_TableName_TableName] FOREIGN KEY([Id])
REFERENCES [SchemaName].[TableName] ([Id])
Run Code Online (Sandbox Code Playgroud)
这个外键是完全冗余的,没有意义只是删除它.它永远不会被违反,因为行匹配自己验证约束.
在分层表中,关系将在两个不同的列之间(例如Id和ParentId)
至于为什么可能通过使用可视化设计器很可能创建它,如果你右键单击对象资源管理器中的"键"节点并选择"新外键"然后关闭对话框而不删除创建的外键然后制作一些打开的表设计器中的其他更改并保存它将创建这种冗余约束.
| 归档时间: |
|
| 查看次数: |
7963 次 |
| 最近记录: |