将一张表的查询结果插入到另一张表(转)
将一张表的查询结果插入到另一张表方法一:代码 1 select into 和 insert into select 两种表复制语句 2 select * into destTbl from srcTbl 3 4 insert into destTbl(fld1, fld2) select fld1, 5 from srcTbl 5 6 以上两句都是将 srcTbl 的数据插入到 destTbl,但两句又有区别的。 7 8 第一句(select into from)要求目标表(destTbl)不存在,因为在插入时会自动创建。 9 10 第二句(insert into select from)要求目标表(destTbl)存在,由于目标表已经存在,所以我们除了插入源表(srcTbl)的字段外,还可以插入常量11 12 方法二:代码 1 --定义数据 2 DECLARE @srcTitle varchar(500), 3 @srcTime datetime, 4 @srcContent varchar(max) 5 --定义游标 6 DECLARE Mem_Cursor CURSOR FOR 7 --从源表中获取数据 8 SELECT [title],[fbtime],[content] FROM [fjch].[dbo].[bszn] 9 10 --打开游标11 OPEN Mem_Cursor12 13 --将获取数据添加到内存表中14 FETCH NEXT FROM Mem_Cursor INTO @srcTitle,@srcTime,@srcContent15 16 WHILE @@FETCH_STATUS=017 BEGIN18 --将数据插入到新表中19 INSERT INTO [FJBSMDB].[dbo].[Scms_news]20 ([title]21 ,[time]22 ,[bigclassname]23 ,[content]24 ,[hits]25 ,[author]26 ,[url] 27 ,[smallclass]28 ,[ding]29 ,[dig]30 ,[zhaiyao]31 ,[checked]32 ,[Permissions]33 ,[thirdclass]34 ,[reasons]35 ,[IsShowInHome]36 ,[IsRolling]37 ,[IsTop]38 ,[IsTopOrder]39 ,[IsInProvince])40 VALUES41 (@srcTitle42 ,@srcTime43 ,344 ,@srcContent45 ,046 ,'福建省测绘局' --原办事指南没来源47 ,'Articls/200912/'+convert( varchar(8),cast(rand(checksum(newid()))*100000000 as int ))+'.html'48 ,1449 ,050 ,051 ,''52 ,453 ,''54 ,055 ,''56 ,'False'57 ,'False'58 ,'False'59 ,060 ,'False')61 62 FETCH NEXT FROM Mem_Cursor INTO @srcTitle,@srcTime,@srcContent63 END64 65 --关闭游标66 CLOSE Mem_Cursor67 --删除临时表68 DEALLOCATE Mem_Cursor?