同步相同结构数据库数据

create proc [dbo].[snyc_db]
@sdb varchar(200) ='test01',
@ddb varchar(200) ='test02'
AS
BEGIN
DECLARE @sql_txt varchar(2000);
SET @sql_txt='';

DECLARE cur_tb CURSOR FOR
    SELECT name FROM sys.tables;
OPEN cur_tb


DECLARE @tb_cl varchar(2000),@tb_name varchar(500)
FETCH NEXT FROM cur_tb into @tb_name
WHILE @@FETCH_STATUS = 0 
BEGIN 
SET @tb_cl='';
SET @sql_txt='' ;
SET @tb_cl=replace(replace(replace(replace
(CAST((SELECT case name when 'user' then '[user]'
when 'table' then '[table]'
else name end FROM sys.all_columns 
WHERE object_name(object_id)=@tb_name and is_identity=0
FOR XML PATH('tr'), TYPE) AS NVARCHAR(MAX) )
,'<tr>',''),'</tr>',','),'<name>',''),'</name>','');
SET @tb_cl=substring(@tb_cl,0,len(@tb_cl));
SET @sql_txt='INSERT INTO '+@ddb+'.dbo.'+@tb_name+'('+@tb_cl+') 
SELECT '+@tb_cl+' FROM '+@sdb+'.dbo.'+@tb_name;
print @sql_txt;
exec (@sql_txt);
FETCH NEXT FROM cur_tb into @tb_name
END
CLOSE cur_tb
DEALLOCATE cur_tb
END;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值