• 跨数据库操作


    填写图片摘要(选填)

    ​​​​

    方法一

    ------------将一个数据库表中的数据插入到另一个服务器的数据库的表中----

    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

     
  • 相关阅读:
    mysql千万级数据量根据索引优化查询速度
    Centos 7 开放查看端口 防火墙关闭打开
    Spring-Quartz 配置执行时间参数
    Curl命令查看请求响应时间
    Centos 7 安装 Mongodb
    配置Docker加速器
    TCP端口状态说明ESTABLISHED、TIME_WAIT
    Maven依赖项Scope属性设置含义
    实战JAVA虚拟机 JVM故障诊断与性能优化(十)---字节码的执行
    代理模式(Proxy)_java实现
  • 原文地址:https://www.cnblogs.com/hnzheng/p/9717126.html
Copyright © 2020-2023  润新知