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

谁都会走 提交于 2019-12-02 06:41:44
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

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!