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