select into 和 insert into select 兩種表複製語句
select * into destTbl from srcTbl
insert into destTbl(fld1, fld2) select fld1, 5 from srcTbl
以上兩句都是將 srcTbl 的數據插入到 destTbl,但兩句又有區別的。
第一句(select into from)要求目標表(destTbl)不存在,因爲在插入時會自動創建。
第二句(insert into select from)要求目標表(destTbl)存在,由於目標表已經存在,所以我們除了插入源表(srcTbl)的字段外,還可以插入常量
方法二:
--定義數據
DECLARE @srcTitle varchar(500),
@srcTime datetime,
@srcContent varchar(max)
--定義遊標
DECLARE Mem_Cursor CURSOR FOR
--從源表中獲取數據
SELECT [title],[fbtime],[content] FROM [fjch].[dbo].[bszn]
--打開遊標
OPEN Mem_Cursor
--將獲取數據添加到內存表中
FETCH NEXT FROM Mem_Cursor INTO @srcTitle,@srcTime,@srcContent
WHILE @@FETCH_STATUS=0
BEGIN
--將數據插入到新表中
INSERT INTO [FJBSMDB].[dbo].[Scms_news]
([title]
,[time]
,[bigclassname]
,[content]
,[hits]
,[author]
,[url]
,[smallclass]
,[ding]
,[dig]
,[zhaiyao]
,[checked]
,[Permissions]
,[thirdclass]
,[reasons]
,[IsShowInHome]
,[IsRolling]
,[IsTop]
,[IsTopOrder]
,[IsInProvince])
VALUES
(@srcTitle
,@srcTime
,3
,@srcContent
,0
,'福建省測繪局' --原辦事指南沒來源
,'Articls/200912/'+convert( varchar(8),cast(rand(checksum(newid()))*100000000 as int ))+'.html'
,14
,0
,0
,''
,4
,''
,0
,''
,'False'
,'False'
,'False'
,0
,'False')
FETCH NEXT FROM Mem_Cursor INTO @srcTitle,@srcTime,@srcContent
END
--關閉遊標
CLOSE Mem_Cursor
--刪除臨時表
DEALLOCATE Mem_Cursor
文章轉載自:http://www.cnblogs.com/xlx0210/archive/2009/12/22/1629456.html