将一张表的查询结果插入到另一张表

时间:2022-06-03 00:45:21
 方法一:

     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