mysql将查询结果写入另一张表_将一张表的查询结果插入到另一张表(转)

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

方法一:

代码

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

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2012-05-08 11:26

浏览 2281

评论


版权声明:本文为weixin_30263409原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。