【发布时间】:2017-10-19 13:29:08
【问题描述】:
我们有两个表需要合并成一个单一的视图。通常我会单独选择列来避免这个问题,但是在这种情况下,这两个表是 800 列的组合。
唯一相同的列是标识符列。不幸的是,这些无法更改,因为它们被第 3 方工具用于同步表
Table A
GUID
Name
Address
...
Table B
GUID
Cell
Fax
Home2
...
是很好的例子,假设每个表有 400 奇数列。
显然是传统的
SELECT a.*, b.* from table_a a, table_b a where a.guid = b.guid
惨败。有没有什么简单的方法可以创建视图而不必列出 799 个单独的列名?我在想也许是一个一次性的功能来创建视图,但到目前为止我正在碰壁。
【问题讨论】:
-
您是否考虑过生成包含列别名的 SQL 脚本?
-
为什么不能列出列?为什么你在两个表中有 400 列???听起来好像有什么大错特错。还有 800 列的视图?你打算怎么办?无论如何,您都不想在视图中使用 select *。当表格发生变化时,它会导致各种问题。而且您真的应该开始使用 ANSI-92 样式的连接,它们已经存在超过 25 年了。
-
您可以动态创建查询,因此您不必自己进行输入。但肖恩是对的。
-
右键单击 Management Studio 中的表,将表脚本作为 SELECT TO.. 在两个表上。 Ctrl+A -> Ctrl+C 将此脚本写入新文件。利润!
-
我觉得 OP 的痛苦。听起来像是我为客户工作的医疗系统。每个字段都是“GenericText01”或“GenericInt02”。数百个。然后他们将它们隐藏在表示层上。他们每天都会发出一份新的地图文件。这真是我见过的最糟糕的数据库。
标签: sql sql-server