我有一个数据库,其中包含不同产品的各种表的几个表。这些产品在所有表格中都有唯一的部件号。
要搜索所有表,我创建了一个视图,该视图在表中的所有公共字段中使用UNION ALL。
一旦确定了一个部件,我需要根据数据所在的表选择所有列。该视图包含一个字段,用于指定找到数据的表。
我不确定完成最后一部分的方法:
CASE声明(我现在倾向于这个)
动态SQL(不想使用它,会涉及SELECT *和其他恶意程序)
客户端的SELECT(客户端需要从任意表中选择,需要额外的权限,糟糕的设计吗?)
替代解决方案?
编辑:实际上,IF语句是唯一有意义的语句。客户端不应该直接访问表。由于每个表中的列都不同,因此每个表都可能有一个单独的语句。
(我将问题标记为已回答,但我没有足够的声誉)
答案 0 :(得分:0)
我不确定我是否正确理解了你的问题..我的理解是你有使用union all从不同表中选择数据的视图..你可以在创建视图时给出表名
从table1中选择“table1”,table1.a,table1.b .. 联合所有 从table2中选择“table2”,table2.a,table2.b .....
答案 1 :(得分:0)
实际上,IF语句是唯一有意义的语句。客户端不应该直接访问表。由于每个表中的列都不同,因此每个表都可能有一个单独的语句。