相关疑难解决方法(0)

TSQL外键视图?

我有一个SQL-Server 2008数据库和一个使用外键约束来强制引用完整性的模式.按预期工作.现在,用户创建原始表的视图以仅处理数据的子集.我的问题是过滤某些表中的某些数据集而不是其他表中的某些数据集会违反外键约束.
想象一下两个表"一"和"两个"."one"只包含值为1,2,3的id列."两个"引用"一个".现在,您可以在两个表上创建视图.表"one"的视图不会过滤任何内容,而表"one"的视图会删除除第一行之外的所有行.你最终会在第二个视图中找到无处可见的条目.

有什么方法可以避免这种情况吗?你能在视图之间有外键约束吗?

回应一些评论的一些澄清:
我知道即使通过视图插入,底层约束也将确保数据的完整性.我的问题在于使用视图的语句.这些语句是在考虑原始表的情况下编写的,并假设某些连接不会失败.使用表时,此假设始终有效 - 但视图可能会破坏它.
首先创建视图时加入/检查所有约束是因为大量的引用表而导致的.因此,我希望避免这种情况.

sql t-sql sql-server views foreign-keys

20
推荐指数
3
解决办法
2万
查看次数

标签 统计

foreign-keys ×1

sql ×1

sql-server ×1

t-sql ×1

views ×1