我有一个SQL视图,它使用UNION ALL将2个表组合在一起。
我正在编写一个存储过程来更新布尔值,并且由于联合的存在,显然无法更新视图本身。所以我试图找到确定数据行来自哪个表的最佳方法,然后直接更新该表。
是否有可用于查找此内容的SYS表等?
答案 0 :(得分:2)
您可以添加一列来区分两个表:
例如:
SELECT table1ID, table1Values...etc, 'table1' As OriginatingTable FROM table1
UNION
SELECT table2ID, table2Values...etc, 'table2' As OriginatingTable FROM table2
然后在存储过程中,要确定要更新的表,只需检查OriginatingTable的列值。
答案 1 :(得分:1)
在正在联合的子句中,您可以添加另一个用于命名源表的列,并在存储过程中引用该列。