寫在前面的話:不管是**開發中還是應用程式開發中,我們都會經常遇到需要將資料從乙個表中匯入匯入到另乙個表中,甚至需要指定匯入字段。
select * into newtable from oldtable
select * into newtable from oldtable where 1=0
也就是讓where條件永遠為假,所以一條資料都不取
insert into newtable select * from oldtable
如果需要對匯入資料進行選擇的話,可以再後面直接新增where條件
insert into desctablename(col1, col2, col3, col4 ...) select col1, col2, col3 ... from sourcetablename
但是我們在設計資料庫時,有些表的的字段是標識列,這種情況下,上面的語句就會出現錯誤了。
訊息 8101,級別 16,狀態 1,第 1 行
僅當使用了列列表並且 identity_insert 為 on 時,才能為表'userinfo'中的標識列指定顯式值。
其實錯誤的提示已經很明白了,僅當使用了列列表,也就是說不能使用select*,必須指定插入字段。另外identity_insert為on,那我們在執行語句時將它設為on就可以了,修改後成功的語句為:
setidentity_insert userinfo on
insert
into
userinfo(userid, username, userage)
select userid, username, userage from
newtable
setidentity_insert userinfo off
從一張表資料匯入到另一張表
1 insert into select語句 語句形式為 insert into table2 field1,field2,select field1 field2 from table1 或者 insert into table2 select from table1 注意 1 要求目標表tabl...
從一張表中複製資料到另一張表中
分為兩種情況,一種是目標表不存在,另一種是目標表已存在,語法是不同的。分別以sqlserver和oracle為例,兩者略有不同。sqlserver中,如果目標表不存在 select into新錶名from舊表名 sqlserver中,如果目標表已存在 insertinto新錶名select from...
hive 把乙個表中的兩列匯入到另一張建好的表中
1.建表wkz hive create table wkz id int,name string,age int,tel string row format delimited fields terminated by t 2.本地當前路徑資料檔案wkz內容 1 wkz 2 bug 3 cdd 3....