簡體   English   中英

從簡單的 UNION 語句創建表

[英]Create table from simple UNION statement

這個聯盟有什么問題? 第一個 'select' 和 ')' 不正確

create table GL_ALL
(
   select *from GL1
)
UNION
(
   select *from GL2
)
UNION
(
   select *from GL3
)
UNION
(
   select *from GL4
)
UNION
(
   select *from GL5
);

這不是在 SQL Server 或UNION中動態創建表的正確語法。

假設每個表的模式都相同

SELECT *
INTO GL_ALL FROM GL1 UNION
SELECT * FROM GL2 UNION
SELECT * FROM GL3 UNION
SELECT * FROM GL4 UNION
SELECT * FROM GL5;

正如評論中所指出的,這將適用於GL_ALL的初始創建,但不適用於創建表后的后續插入。

如果您稍后需要將 append 添加到表中,則語法更改為:

INSERT INTO GL_ALL
SELECT * FROM GL6;

重要的是要意識到新表將沒有主鍵,也沒有源表可能具有的任何外鍵、索引(聚集或非聚集)、約束、默認值等。 如果需要這些,那么您將需要手動創建它們。

請注意UNIONUNION ALL之間的區別,其中UNION將排除重復行。

另請注意,最好避免SELECT *並專門調出您要使用的列 - 即使它實際上所有列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM