熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

SELECTINTO和INSERTINTOSELECT的區別

2013-11-13 15:36:58  來源: Oracle 

  Insert是Tsql中常用語句Insert INTO table(fieldfield) values(valuevalue)這種形式的在應用程序開發中必不可少但我們在開發測試過程中經常會遇到需要表復制的情況如將一個table的數據的部分字段復制到table或者將整個table復制到table這時候我們就要使用SELECT INTO 和 INSERT INTO SELECT 表復制語句了

  INSERT INTO SELECT語句

  語句形式為Insert into Table(fieldfield) select valuevalue from Table

  要求目標表Table必須存在由於目標表Table已經存在所以我們除了插入源表Table的字段外還可以插入常量示例如下

  INSERT INTO SELECT語句復制表數據

  創建測試表

  create TABLE Table

  (

  a varchar()

  b varchar()

  c varchar()

  CONSTRAINT [PK_Table] PRIMARY KEY CLUSTERED

  (

  a ASC

  )

  ) ON [PRIMARY]

  create TABLE Table

  (

  a varchar()

  c varchar()

  d int

  CONSTRAINT [PK_Table] PRIMARY KEY CLUSTERED

  (

  a ASC

  )

  ) ON [PRIMARY]

  GO

  創建測試數據

  Insert into Table values(asds)

  Insert into Table values(asds)

  Insert into Table values(asds)

  Insert into Table values(asdsnull)

  GO

  select * from Table

  INSERT INTO SELECT語句復制表數據

  Insert into Table(a c d) select ac from Table

  GO

  顯示更新後的結果

  select * from Table

  GO

  刪除測試表

  drop TABLE Table

  drop TABLE Table

  SELECT INTO FROM語句

  語句形式為SELECT vale value into Table from Table

  要求目標表Table不存在因為在插入時會自動創建表Table並將Table中指定字段數據復制到Table示例如下

  SELECT INTO FROM創建表並復制表數據

  創建測試表

  create TABLE Table

  (

  a varchar()

  b varchar()

  c varchar()

  CONSTRAINT [PK_Table] PRIMARY KEY CLUSTERED

  (

  a ASC

  )

  ) ON [PRIMARY]

  GO

  創建測試數據

  Insert into Table values(asds)

  Insert into Table values(asds)

  Insert into Table values(asds)

  Insert into Table values(asdsnull)

  GO

  SELECT INTO FROM語句創建表Table並復制數據

  select ac INTO Table from Table

  GO

  顯示更新後的結果

  select * from Table

  GO

  刪除測試表

  drop TABLE Table

  drop TABLE Table

  原帖地址


From:http://tw.wingwit.com/Article/program/Oracle/201311/17012.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.