您的当前位置:首页正文

SqlServer跨库查询

2023-11-08 来源:帮我找美食网

  • 较第一种(通过sp_addlinkedserver建立链接服务器)简单,适合简单的sql语句中,如果是复杂的逻辑,需要有语句块、函数或者存储过程才能完成时,建议使用第一种(即时创建、销毁连接服务器)
  • 通过sp_addlinkedserver建立链接服务器
  • 使用步骤
  • 通过Sp_AddLinkedServer创建链接服务器
  • 示例: Exec Sp_AddLinkedServer ‘RemoteLinkMasterDB‘,‘‘,‘SqlOleDB‘,‘172.21.1.1MyDBInstace‘
  • 通过Sp_AddLinkedSrvLogin 创建链接服务器使用账户、密码
  • 示例: Exec Sp_AddLinkedSrvLogin ‘RemoteLinkMasterDB‘,‘false‘,null,‘MyMasterDataBaseUser‘,‘MyMasterDBBaseUserPassword‘
  • 通过Sp_ServerOption 设置 RPC、RPC Out为True(如果不需要执行跨域存储过程则不需要设置此项)
  • Exec Sp_ServerOption ‘RemoteLinkMasterDB‘,‘RPC‘,‘true‘;
  • Exec sp_ServerOption ‘RemoteLinkMasterDB‘,‘RPC Out‘,‘true‘;
  • 使用之后,通过Sp_DropServer删除链接服务器、删除链接登陆
  • Exec Sp_DropServer ‘RemoteLinkMasterDB‘,‘DropLogins‘;
  • SQL中使用示例:
  • 查询:Select * From RemoteLinkMasterDB.数据库名称(Database Name).Scheme(数据库架构).表/视图名;
  • 执行跨域存储过程:Exec RemoteLinkMasterDB.数据库名称(Database Name).Scheme(数据库架构).存储过程名(参数相关);
  • 还可以使用openquery函数:Select * From OpenQuery(RemoteLinkMasterDB,‘Select * From 数据库名称.架构名.表名‘);
  • 没有链接服务器时,可以使用openrowset或者opendatasource函数
  • OpenRowSet用法示例:
  • Select * From OpenRowSet(‘SqlOleDB‘,‘172.21.1.1MyDBInstace‘,‘MyMasterDataBaseUser‘,‘MyMasterDBBaseUserPassword‘,‘Select GetDate()‘);
  • Select * From OpenRowSet(‘SqlOleDB‘,‘Source=172.21.1.1MyDBInstace;UID=MyMasterDataBaseUser;PWD=MyMasterDBBaseUserPassword‘,‘Select GetDate()‘);
  • OpenDataSource用法示例:
  • Select * From OpenDataSource(‘SqlOleDB‘,‘Data Source=172.21.1.1MyDBInstace;User ID=MyMasterDataBaseUser;Password=MyMasterDBBaseUserPassword‘).数据库名.架构名.表名
  • 这两种方式必须开通 Ad Hoc Distributed Queries。
  •  

     

     

    参考:http://www.2cto.com/database/201206/136383.html

    SqlServer跨库查询

    标签:

    小编还为您整理了以下内容,可能对您也有帮助:

    SQL如何将一个查到的结果加入到另一个数据库?

    SQL如何将一个数据库中查到的结果加入到另一个数据库?

      语句形式为:insert into 资料库名.框架名.表名(列名) select (列名) from 资料库名.框架名.表名 where 条件。

      类似这样写就行了:

      insert into MyEmp.dbo.tjdjb(yybh)

      select yybh

      from MyCmd.dbo.tjdjb where djrq='2009-10-15' and yybh = '11'

      select a,c INTO Table2 from Table1。

    SQL全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系资料库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle ,Sybase,Informix,SQL server这些大型的资料库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的资料库开发系统,都支援SQL语言作为查询语言。

    如何将 一个数据库同步到另一个数据库

    1.直接方法,将需要的查询的资料赋值到excel中。相应调整,然后再赋值到目标表中(对于资料量不大的情况下较快)

    2.最好两资料库拥有相同的登入名和密码不然比较麻烦

    insert into 目标资料库.dbo.目标表名(栏位1...栏位n)

    select 段1...栏位n from 源资料库.dbo.源表名 或 select 段1...栏位n into 目标资料库.dbo.目标表名 from 源资料库.dbo.源表名

    3.这样的插入注意表字段的长度和约束条件,若原表中栏位长,就得将目标表中的栏位相应加长

    如何将一个.sql档案汇入到mysql资料库中的一个数据库里

    D:> mysql -uroot -ppassword

    Wele to the MySQL monitor. Commands end with ; or g.

    Your MySQL connection id is 18508

    Server version: 5.1.22-rc Source distribution

    Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

    mysql> use db

    Database changed

    mysql> source D:file.sql

    ..

    ..

    ..

    ..

    怎样将一个数据库中的储存过程复制到另一个数据库中

    如果你是想把储存过程这些程式搬到另外一个数据库的话,那就直接把这些储存过程另存为SQL文字,然后在另外一个数据库重新建立就是了。

    如果你的意思是保持两个资料库资料的同步和一致,就可以考虑配置两个资料库之间的资料同步的一些方案,例如资料库复制、资料库资料档案的磁碟映象等等技术方案,如果对高可用性HA要求非常高的系统,也可以考虑使用商业资料库系统的丛集Cluster方案。

    SQL中如何将一个数据库中的所有的表结构复制到另一个数据库中? 用资料库指令码实现,请问指令码怎么写?

    insert 表

    select * from OPENDATASOURCE( 'SQLOLEDB', 'Data Source=ServerName;User ID=MyUID;Password=MyPass' ).资料库.dbo.表

    可以将一个数据库表新增到另一个数据库中吗?为什么?

    结构一样的话

    insert into 资料库A.dbo.TableA

    select * from 资料库B.dbo.TableA

    另外:

    nsert into DDD(栏位1,栏位2,栏位3 .....)

    (

    select 栏位1,栏位2,栏位3 ..... from AAA,BBB,CCC

    )

    插入的栏位和查询的栏位数量型别一致

    由于你的夸库查询插入

    所以在表名前加 库名.使用者名称

    insert into B.使用者.DDD(栏位1,栏位2,栏位3 .....)

    (

    select 栏位1,栏位2,栏位3 ..... from A.使用者.AAA,A.使用者.BBB,A.使用者.CCC

    )

    如果是sqlserver资料库,可以在查询分析器左边选单看到表使用者名称,

    如果你是在A库下操作,可以省去A库表的库名.使用者名称,同理B库表也一样

    VFP 将一个数据库表移动到另外一个数据库中

    OPEN DATABASE dbcFileName1 &&开启原资料库

    REMOVE TABLE TableName && 从原资料库中移去表

    DATABASES ALL &&关闭原资料库

    OPEN DATABASE dbcFileName2 &&开启新资料库

    ADD TABLE TableName && 新增表到新资料库

    aess将一个数据库汇入到另一个数据库时怎么合并相同的表

    不考虑资料合并时

    select A.栏位1,A.栏位2........from A into B

    A是来源表,B是目标表。

    同一个检视结构插入到另一个数据库中查询相应资料 sql

    如果在同一个伺服器中的不同资料库,可以跨资料库建检视。

    比如有两个资料库A 和B B资料库中有个表TA

    那么可以在A资料库中建个检视,取自B资料库中表TA中的资料

    use A

    go

    creat view B_TA as

    select * from B..TA

    go

    这样就在A资料库中建一个检视B_TA 资料取自B资料库中TA表

    C#怎样实现从资料库中把资料传到另一个数据库中

    比较复杂啊

    在按钮里先载入另一个数据库然后UPdate,繁琐了!

    SQLServer怎么实现跨数据库查询呢(sql跨服务器查询语句)

    方式一:

    语句知

    SELECT*FROM数据库道A.dbo.表专Aa,数据库B.dbo.表Bb

    WHEREa.field=b.field

    "DBO"可以省略如

    SELECT*FROM数据库A..表Aa,数据库B..表BbWHEREa.field=b.field

    祝好运,望属采纳

    在sqlserver实现跨库查询,该怎么实现

    建立DBLINK

    /////////////////////////////SQL SERVER////////////////////////////

    Exec sp_droplinkedsrvlogin DBVIP,Null

    Exec sp_dropserver DBVIP

    EXEC sp_addlinkedserver

    @server='DBVIP',--被访问的服务器别名

    @srvproct='',

    @provider='SQLOLEDB',

    @datasrc='Server2' --要访问的服务器

    EXEC sp_addlinkedsrvlogin

    'DBVIP', --被访问的服务器别名

    'false',

    NULL,

    'sa', --帐号

    'thankyoubobby' --密码

    Select * from DBVIP.pubs.dbo.orders

    sqlserver调oracle怎么接收返回表

    接收Oracle返回的表在SQL Server中,可以通过使用Linked Server来实现。Linked Server是SQL Server中的一个功能,可以在SQL Server中连接到其他数据库系统,包括Oracle。以下是具体的步骤:

    1. 在SQL Server中创建一个Linked Server,指向Oracle数据库。可以使用SQL Server Management Studio中的“对象资源管理器”来创建Linked Server,或者使用T-SQL命令来创建。

    2. 在创建Linked Server时,需要指定连接到Oracle数据库的相关信息,包括服务器名称、登录信息和数据库名称等。

    3. 一旦创建了Linked Server,你可以使用四部分名称(四部分名称由服务器名称、目录名称、模式名称和表名称组成)来引用Oracle数据库中的表,就像引用本地SQL Server中的表一样。

    4. 在SQL Server中执行查询时,可以使用OPENQUERY函数或者直接使用四部分名称引用Oracle表。OPENQUERY函数可以在查询中使用,以便在Oracle数据库上执行特定的查询,并将结果返回给SQL Server。

    原因解释:

    SQL Server和Oracle是两个不同的数据库系统,它们的数据结构和查询语言有所不同。通过创建Linked Server,可以在SQL Server中建立与Oracle数据库的连接,并允许从Oracle数据库中检索数据。这样可以在SQL Server环境中方便地处理和分析Oracle数据库中的数据,而无需进行数据导出和导入操作。

    拓展内容:

    除了使用Linked Server,还可以使用其他方法来实现SQL Server调用Oracle返回表的需求。例如,可以使用ETL工具(如SSIS)将Oracle数据导入到SQL Server中进行处理,或者使用数据复制技术将Oracle数据库的数据实时复制到SQL Server中。这些方法的选择取决于具体的业务需求和数据处理的复杂程度。

    Top