sql SELECT INTO和inert into select有什么区别

SELECT * INTO A FROM B和inert into A select * from B区别是什么? 详细点谢谢
2024-11-06 21:39:53
推荐回答(4个)
回答1:

SELECT * INTO A FROM B 是在还没有A表的情况下,直接通过B表创建并把B表数据复制到A表里面
,之后A,B表的结构和数据完全一样。
insert into A select * from B 是在已经创建了A表的情况下,将B表数据复制到A表,此前A表的结构要和B表相同,不然插入的时候报错。

回答2:

区别最大的在于insert into select的表名必须事先存在,如果不存在会报错。
而select into 的如果表名不存在,则会创建一个新表,不会报错。

回答3:

INSERT INTO A SELECT *FROM B
要求A表存在。在插入数据时会将B表中指定字段数据复制到A表中,还可以插入常量。
SELECT * INTO A FROM B
要求A表不存在,在插入数据时会自动创建A表,并将B表中指定字段数据复制到A表中。

回答4:

SELECT * INTO A FROM B
A表在数据库中没有创建(执行select*from A 出现错误)
inert into A select * from B
A表已经存在数据库中 (select *form A )