使用游标把多张表的数据插入同一张表中的一个例子

declare @t varchar(1000)
declare @s varchar(2000)
declare @id int
DECLARE @table_name varchar(2000)
DECLARE cursor1 CURSOR FOR    --定义游标cursor1
SELECT name FROM (select name  from sysobjects where xtype='U'  and name  not like '%d%'  and name not like  '[A-Z]%' and name not like  '[a-z]%') t  -- 筛选出不含有字母d和以字母开头的表名
OPEN cursor1                  --打开游标
FETCH NEXT FROM cursor1 INTO @table_name
WHILE @@FETCH_STATUS=0        --判断是否成功获取数据
        BEGIN
set @t='insert into BigTable_copy1(name,table_id)   select name='''+@table_name+''''
set @s=@t+', id from  '+ @table_name +'  where is_delete=0 '
        exec (@s)
            FETCH NEXT FROM cursor1 INTO @table_name
        END
CLOSE cursor1                 --关闭游标
DEALLOCATE cursor1

猜你喜欢

转载自www.cnblogs.com/lytuser/p/11734978.html