Sql 通过附加另一个表来更改表
我是T-SQL的新手,问题很简单。我有两张相同方案的桌子。我想把一个连接到另一个。我只知道“联合”,例如Sql 通过附加另一个表来更改表,sql,sql-server,tsql,Sql,Sql Server,Tsql,我是T-SQL的新手,问题很简单。我有两张相同方案的桌子。我想把一个连接到另一个。我只知道“联合”,例如 select * from table1 union select * from table2 但是,这将生成一个新表,并将存储空间增加一倍。我想知道,有没有办法通过附加另一张表来直接更改一张表?比如 insert into table1 values() 真的需要帮助!Thx.联合不会“创建存储”,因为它会在运行时组合查询。工会可能需要的唯一存储空间是临时空间,用于进行排序、分组等
select * from table1
union
select * from table2
但是,这将生成一个新表,并将存储空间增加一倍。我想知道,有没有办法通过附加另一张表来直接更改一张表?比如
insert into table1 values()
真的需要帮助!Thx.联合不会“创建存储”,因为它会在运行时组合查询。工会可能需要的唯一存储空间是临时空间,用于进行排序、分组等操作
要将数据从select插入到另一个表中,可以使用以下命令:
insert into table1 (col1, col2, col3)
select col1, col2, col3
from table2
但是,将加倍存储,因为表2的数据将存储在表2和表1中,直到您删除/删除表2(源)如果您不担心重复记录需要更新或保持原样,可以使用简单的
插入
注意:两个表应该具有相同的结构和数据类型长度
逐步查看此示例代码。
本例将emp_备份表中的数据插入emp表
CREATE table emp
(
empid int,
fname varchar(20),
lname varchar(20)
);
INSERT INTO emp VALUES(1,'vish','dalvi');
INSERT INTO emp VALUES(2,'rohit','kale');
INSERT INTO emp VALUES(3,'vishal','gr');
SELECT * FROM emp;
CREATE table emp_backup
(
empid int,
fname varchar(20),
lname varchar(20)
);
INSERT INTO emp_backup VALUES(6,'mark','novak');
INSERT INTO emp_backup VALUES(7,'gar','pandey');
INSERT into emp
SELECT * FROM emp_backup;
SELECT * FROM emp;
你的目标是什么,你想做什么?正如在第一条注释中指出的,您可以使用这些表创建一个视图,然后使用该视图启动SELECT以获得从两个表合并的结果。但从物理上讲,原始表将保持彼此独立。要创建视图,请参见,但基本上可以运行以下命令:
CREATE VIEW table1_table2
AS
SELECT *
FROM Table1
UNION ALL
SELECT *
FROM Table2
然后只需执行SELECT*fromtable1\u table2
即可从两个表中获取所有行
另一种选择,可能是您正在寻找的,是从一个表中获取数据,插入到另一个表中,然后删除第一个表
INSERT INTO Table1
SELECT * FROM Table2
TRUNCATE Table2
DROP Table2
SELECT * FROM Table1
你可以创建一个视图而不是太棒了!我的一张桌子是临时的,可能会被丢弃。因此,存储是正常的。在我提到存储的问题中,我实际上想说使用“union”,我想我需要生成另一个表来存储“union”查询的结果,这将是一个问题。