从另一个表中指定的表中选择 - 可能没有动态SQL?

时间:2011-09-09 08:56:11

标签: sql sql-server tsql

我有一个数据库,其中包含不同产品的各种表的几个表。这些产品在所有表格中都有唯一的部件号。

要搜索所有表,我创建了一个视图,该视图在表中的所有公共字段中使用UNION ALL。

一旦确定了一个部件,我需要根据数据所在的表选择所有列。该视图包含一个字段,用于指定找到数据的表。

我不确定完成最后一部分的方法:

CASE声明(我现在倾向于这个)

动态SQL(不想使用它,会涉及SELECT *和其他恶意程序)

客户端的SELECT(客户端需要从任意表中选择,需要额外的权限,糟糕的设计吗?)

替代解决方案?

编辑:实际上,IF语句是唯一有意义的语句。客户端不应该直接访问表。由于每个表中的列都不同,因此每个表都可能有一个单独的语句。

(我将问题标记为已回答,但我没有足够的声誉)

2 个答案:

答案 0 :(得分:0)

我不确定我是否正确理解了你的问题..我的理解是你有使用union all从不同表中选择数据的视图..你可以在创建视图时给出表名

从table1中选择“table1”,table1.a,table1.b .. 联合所有 从table2中选择“table2”,table2.a,table2.b .....

答案 1 :(得分:0)

实际上,IF语句是唯一有意义的语句。客户端不应该直接访问表。由于每个表中的列都不同,因此每个表都可能有一个单独的语句。