填写图片摘要(选填)
方法一
------------将一个数据库表中的数据插入到另一个服务器的数据库的表中----
use financialproducts
go
--- 把23数据同步到24
--- 开启23连接
EXEC sp_addlinkedserver 'fundDb23','/数据库名称','SQLOLEDB','服务器名称,3433' --有自定义实例名还要加上"/实例名"
--1.2 创建登录信息(或叫创建链接服务器登录名映射)(只需选择一种方式)
--1.2.1 以windows认证的方式登录
EXEC sp_addlinkedsrvlogin 'fundDb23' --或EXEC sp_addlinkedsrvlogin 'LinkName','true'
--1.2.2 以SQL认证的方式登录
EXEC sp_addlinkedsrvlogin 'fundDb23','false',NULL,'fundviewer','Fund_vi3wer'
go
--------------------------------------
------------- aspnet 表和用户数据表
---biao有主键 的时候,不能显示的插入,所以打开显示插入
set IDENTITY_INSERT sm.DebtDailyPriceHistory on
insert into sm.DebtDailyPriceHistory( [security_id]
,[date]
)
select [security_id]
,[date]
from
[fundDb23].[financialproducts].[sm].DebtDailyPriceHistory
---关闭显示插入
set IDENTITY_INSERT sm.DebtDailyPriceHistory off
go
-- 删除连接服务 第一个参数是:连接服务名称 第二个参数固定
exec sp_dropserver 'fundDb23','droplogins'
go
方法二
------------将一个数据库表中的数据插入到另一个服务器的数据库的表中----
use financialproducts
go
--- 把23数据同步到24
--- 开启23连接
EXEC sp_addlinkedserver 'fundDb24','/数据库名称','SQLOLEDB','服务器名称,3433' --有自定义实例名还要加上"/实例名"
--1.2 创建登录信息(或叫创建链接服务器登录名映射)(只需选择一种方式)
--1.2.1 以windows认证的方式登录
EXEC sp_addlinkedsrvlogin 'fundDb24' --或EXEC sp_addlinkedsrvlogin 'LinkName','true'
--1.2.2 以SQL认证的方式登录
EXEC sp_addlinkedsrvlogin 'fundDb24','false',NULL,'fundviewer','Fund_vi3wer'
go
declare @name varchar(100),@schemaName varchar(20)
declare #cour cursor for
select t.name,s.name as schemaName
from sys.tables as t,sys.schemas as s -------批量插入或者单个表插入
where t.schema_id = s.schema_id and type='U' --- and t.name ='CachedCnabsYieldCurve'
order by name
open #cour
fetch #cour into @name,@schemaName
while @@FETCH_STATUS=0
begin
begin try
declare @column varchar(max)
set @column=''
Select @column='['+Name+'],'+@column FROM SysColumns
Where id=Object_Id(''+@schemaName+'.'+@name+'') and xtype!=189
set @column=left(@column,len(@column)-1)
declare @sql varchar(max)
set @sql=''
if OBJECTPROPERTY(OBJECT_ID(@schemaName+'.'+@name),'TableHasIdentity')=1
begin
set @sql=' set identity_insert '+@schemaName+'.'+@name+' on'
end
set @sql+=' insert into '+@schemaName+'.'+@name+'('+@column+')'
set @sql+=' select '+@column+' from [fundDb24].[financialproducts].['+@schemaName+'].['+@name+']'
if OBJECTPROPERTY(OBJECT_ID(@schemaName+'.'+@name),'TableHasIdentity')=1
begin
set @sql+=' set identity_insert '+@schemaName+'.'+@name+' off'
end
exec (@sql)
end try
begin catch
select @sql
end catch
fetch #cour into @name,@schemaName
end
close #cour
deallocate #cour
go
-- 删除连接服务 第一个参数是:连接服务名称 第二个参数固定
exec sp_dropserver 'fundDb24','droplogins'
go