将一张表的查询结果安插到另一张表(转)
将一张表的查询结果插入到另一张表(转)
将一张表的查询结果插入到另一张表 方法一: 代码 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_Cursor 12 13 --将获取数据添加到内存表中 14 FETCH NEXT FROM Mem_Cursor INTO @srcTitle,@srcTime,@srcContent 15 16 WHILE @@FETCH_STATUS=0 17 BEGIN 18 --将数据插入到新表中 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 VALUES 41 (@srcTitle 42 ,@srcTime 43 ,3 44 ,@srcContent 45 ,0 46 ,'福建省测绘局' --原办事指南没来源 47 ,'Articls/200912/'+convert( varchar(8),cast(rand(checksum(newid()))*100000000 as int ))+'.html' 48 ,14 49 ,0 50 ,0 51 ,'' 52 ,4 53 ,'' 54 ,0 55 ,'' 56 ,'False' 57 ,'False' 58 ,'False' 59 ,0 60 ,'False') 61 62 FETCH NEXT FROM Mem_Cursor INTO @srcTitle,@srcTime,@srcContent 63 END 64 65 --关闭游标 66 CLOSE Mem_Cursor 67 --删除临时表 68 DEALLOCATE Mem_Cursor