[sql server] SELECT INTO 和 INSERT INTO SELECT


INSERT INTO 表名稱 VALUES (值1, 值2,....) --插入單條數據,全字段都要有值
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) --插入單條數據 部分字段,部分值

INSERT INTO table_name (列1, 列2,...) VALUES
(值1, 值2,....),
(值1, 值2,....),
(值1, 值2,....),
(值1, 值2,....)
--插入多條語句

1.INSERT INTO SELECT語句

語句形式為:Insert into Table2(field1,field2,...) select value1,value2,... from Table1

或者:Insert into Table2 select  *  from Table1

注意:(1)要求目標表Table2必須存在,並且字段field,field2...也必須存在

(2)注意Table2的主鍵約束,如果Table2有主鍵而且不為空,則 field1, field2...中必須包括主鍵

(3)注意語法,不要加values,和插入一條數據的sql混了,不要寫成:

第一種,當要插入的表(Student_back)不存在時
--把表 Student 中性別為 '男' 的學生信息 插入到表 Student_back(不存在) 中
select * into Student_back from Student where S_Sex='男'

未指定具體列,就會自動創建一個跟(Student)一樣的表並把數據插入
指定具體要插入的列就會根據指定的列創建一個表,並把數據插入

2.SELECT INTO FROM語句

語句形式為:SELECT vale1, value2 into Table2 from Table1

要求目標表Table2不存在,因為在插入時會自動創建表Table2,並將Table1中指定字段數據復制到Table2中。

第二種,當要插入的表本身便存在時
--把表 Student 中性別為 '女' 的學生信息 插入到表 Student_back(存在)中
insert into Student_back(S_StuNo,S_Name,S_Sex,S_Height)(新表)
select S_StuNo,S_Name,S_Sex,S_Height from Student(舊表)
where S_Sex='女'

因為字段 S_Id 是標識列,不能有顯示插入的值,所以這里必須指定要插入的列。
摘自:https://blog.csdn.net/qq_21960819/article/details/88778116

https://www.cnblogs.com/piaoyangguoguo/p/8276928.html

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM