参考:http://www.2cto.com/database/201206/136383.html
SqlServer跨库查询
标签:
小编还为您整理了以下内容,可能对您也有帮助:
SQL如何将一个查到的结果加入到另一个数据库?
类似这样写就行了:
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.这样的插入注意表字段的长度和约束条件,若原表中栏位长,就得将目标表中的栏位相应加长
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方案。
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库表也一样
OPEN DATABASE dbcFileName1 &&开启原资料库
REMOVE TABLE TableName && 从原资料库中移去表
DATABASES ALL &&关闭原资料库
OPEN DATABASE dbcFileName2 &&开启新资料库
ADD TABLE TableName && 新增表到新资料库
不考虑资料合并时
select A.栏位1,A.栏位2........from A into B
A是来源表,B是目标表。
如果在同一个伺服器中的不同资料库,可以跨资料库建检视。
比如有两个资料库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表
比较复杂啊
在按钮里先载入另一个数据库然后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中。这些方法的选择取决于具体的业务需求和数据处理的复杂程度。