• OpenDataSOurce 指定参数


    declare @IP1 varchar(100)
    declare @Uid1 varchar(100)
    declare @Pwd1 varchar(100)
    set @IP1 = '127.0.0.1'
    set @Uid1 = 'sa'
    set @Pwd1 = '123'
    exec ('select * from OpenDataSource(''SQLOLEDB'',''Data Source='+@IP1+';User ID='+@Uid1+';Password='+@Pwd1+''').Agency.dbo.Property')
    
    declare @IP1 varchar(100)
    declare @Uid1 varchar(100)
    declare @Pwd1 varchar(100)
    set @IP1 = '127.0.0.1'
    set @Uid1 = 'sa'
    set @Pwd1 = '123'
    declare @SQL varchar(500)
    set @SQL=
    'select * from OpenDataSource(''SQLOLEDB'',''Data Source='+@IP1+';User ID='+@Uid1+';Password='+@Pwd1+''').Agency.dbo.Property'
    select @SQL
    exec (@SQL)
    
    同样可以指定access 数据库,但注意引号的不同
    
    最近做表复制的时候遇到的问题。。 
    
    第1步 删除表2
    
    第2步 筛选表1将数据插入表2
    
    create proc Proc_TableCopy
     @IP1 varchar(50),
     @Uid1 varchar(50),
     @Pwd1 varchar(50),
     @IP2 varchar(50),
     @Uid2 varchar(50),
     @Pwd2 varchar(50)
    as
     begin Transaction 
     /*declare @IP1 varchar(50)
     set @IP1 = '127.0.0.1'
     declare @Uid1 varchar(50)
     set @Uid1='sa'
     declare @Pwd1 varchar(50)
     set @Pwd1 = '123'
     declare @IP2 varchar(50)
     declare @Uid2 varchar(50)
     declare @Pwd2 varchar(50)
     set @IP2 = '127.0.0.1'
     set @Uid2='sa'
     set @Pwd2 = '123'*/
     --1 检索源数据表中需要复制的数据信息(初步是设想可以区分新的要筛选的数据)
     /*declare @SQL varchar(8000)
     set @SQL = 'select * from OpenDataSource(''SQLOLEDB'',''Data Source='+@IP1+';User ID='+@Uid1+';Password='+@Pwd1+''').Agency.dbo.Property'
     select @SQL
     if Exists(exec(@SQL))*/
     --begin
     --2 将新增数据写入临时表中
     --select * into #temp from OpenDataSource('SQLOLEDB','Data Source=127.0.0.1;User ID=sa;Password=123').Agency.dbo.Property
     --3 将目标表中的数据删除
     declare @DelSQL varchar(8000)
     set @DelSQL = 'delete from OpenDataSource(''SQLOLEDB'',''Data Source='+@IP2+';User ID='+@Uid2+';Password='+@Pwd2+''').pubs.dbo.Property'
     --select @DelSQL
     exec(@DelSQL)
     --4 将临时表中的数据插入到目标表中
     declare @InsertSQL varchar(8000)
     set @InsertSQL ='insert into OpenDataSource(''SQLOLEDB'',''Data Source='+@IP2+';User ID='+@Uid2+';Password='+@Pwd2+''').pubs.dbo.Property select * from OpenDataSource(''SQLOLEDB'',''Data Source='+@IP1+';User ID='+@Uid1+';Password='+@Pwd1+''').Agency.dbo.Property'
     select @InsertSQL
     exec (@InsertSQL)
     --5 删除临时表
     --drop table #temp
     --end
     --else
     --declare @SQL varchar(8000)
     --set @SQL = 'select * from OpenDataSource(''SQLOLEDB'',''Data Source='+@IP1+';User ID='+@Uid1+';Password='+@Pwd1+''').Agency.dbo.Property'
     --exec(@SQL)
     commit Transaction
      return 1
     rollback Transaction 
      return 2
    
     
    
    分类: SQL
    
  • 相关阅读:
    外设驱动库开发笔记42:DAC8552 DAC驱动
    网络爬虫例子
    http 426 Upgrade Required
    springframework的Assert功能举例
    springframework的ReflectionUtils反射工具类功能举例
    Spring的RestTemplate功能举例
    cocos 3 如何发送全局自定义事件
    cocos 制作滚动按钮 聊天框的方式
    coocs 中的scrollView控件
    graalvm 编译原生java 解决反射的问题 maven配置
  • 原文地址:https://www.cnblogs.com/xiaofengfeng/p/1998539.html
Copyright © 2020-2023  润新知