gpt4 book ai didi

SQL Server 2005 在一个 View 中连接多个表时某些表可能不存在

转载 作者:行者123 更新时间:2023-12-04 18:21:47 25 4
gpt4 key购买 nike

我需要创建一个 View ,但是数据是从具有自己的表数据库管理的应用程序生成的,该表基于列数可以为一个内部表定义创建超过 7 个 SQL Server 表。

所有表格都以 ['m' & number] 结尾,例如 devicem1 , devicem2 ... devicem10
它们都包含logical_name作为他们的主键,但你永远不能依赖哪个表将包含内部表中的任何其他列!

我需要创建一个 View ,将表连接在一起,就像 device因此,当应用程序更改时,它不会弄乱我想要创建的任何存储过程。

基于此查询:

CREATE VIEW device AS
SELECT *
FROM devicem1 m1, devicem2 m2, devicem3 m3, ... devicem10 m10
WHERE m1.logical_name = m2.logical_name
AND m1.logical_name = m3.logical_name
...
AND m1.logical_name = m10.logical_name

有什么方法可以加入十张 table 吗 忽略 事实 devicem9 & devicem10可能不存在?

最佳答案

关于 View 的要求。创建 View 时,引用的表必须存在。 SQL 引擎不允许您创建引用不存在的表的 View 。

考虑到 View 只是一个存储的选择语句,在它创建之后可以删除表(只要模式绑定(bind)不在游戏中);但是,任何时候调用或使用 View 时,所有引用的表都必须存在,否则会抛出错误。

此外,您可以更改引用表的架构,只要它不删除 View 中专门使用的任何字段,但同样,如果 View 使用的特定列丢失,使用 View 的任何查询都将失败。

您可能更幸运地摆脱了您尝试使用一些创造性的表值函数和动态 sql 所做的事情。表值函数基本上只是一个允许参数和扩展逻辑的 View 。

总而言之,我想说你的描述听起来有点粗略。

关于SQL Server 2005 在一个 View 中连接多个表时某些表可能不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10508899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com