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

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

方式一:

语句

SELECTFROM数据库道Adbo表专Aa,数据库Bdbo表Bb

WHEREafield=bfield

"DBO"可以省略如

SELECTFROM数据库A表Aa,数据库B表BbWHEREafield=bfield

祝好运,望属采纳

可以,但前提是227的服务器能够访问到228的数据库。

如果可以访问,你可以尝试修改227网站根目录下的webconfig文件。

用记事本打开webconfig

找到下面类似的语句

<add name="ConnectionString" connectionString="server=;database=;uid=;pwd="

或者

<add key="ConnectionString" value="server=;database=;uid=;pwd=" />

把里面的"server="后面的内容改为228数据库的ip地址,"database="后面的内容改为228数据库的名字,"uid="后面的内容改为登陆名,"pwd="后面的内容改为密码

如果方便的话,你可以把你的227和228两个网站的webconfig的对应位置的内容,去掉一些关键信息后,贴出来,帮你看看,因为这个字符串也有可能加密过的。

配置链接服务器

在服务器对象下面有,

按照提示,一步一步配置就好了,,,

例如跨库查询

select  from

[服务器地址]库名dbo表名

这样的格式,更新插入同理

跨服务器数据查询,服务器要处理rollback,log之类的操作,还是存储过程,会很慢。

可以这样解决1、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。数据量(尺寸)越大,提高I/O越重要。

2、纵向、横向分割表,减少表的尺寸(sp_spaceuse)。

3、升级硬件。

4、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注意填充因子要适当(最好是使用默认值0)。索引应该尽量小,使用字节数小的列建索引好(参照索引的创建),不要对有限的几个值的字段建单一索引如性别字段。

5、提高网速。

1是局域网环境不?是/否

2收费软件通过什么方式访问数据库?配置还是软件写死了?

3收费岗亭有无对数据库主机的访问权限?有/无

4以上问题若都是第一个答案,在新机器上安装一个sql客户端后,那么只需要知道主机数据库的IP和端口,一般sql默认端口为1433,再开启远程访问服务即可。

用事物实现,具体比较麻烦。你可以用临时表来实现,首先从A数据库中查到数据放到某一个临时表1中,再从B数据库中查到数据放到某一个临时表2中,然后再进行第二次查询。中间注意事物的回滚,否则如果某个数据库连接错误就会导致数据不对。

如果你不明白什么是数据库的事务,你就去查一下,不是很难得。

http://tiebabaiducom/p/4857679839pid=100150994613&cid=0#100150994613

//第一步加载驱动

try{//微软公司数据库 (桥接)SQL数据库

ClassforName

("commicrosoftsqlserverjdbcSQLServerDriver");

} catch(ClassNotFoundException e) {

eprintStackTrace();//打印堆叠追踪

}

//定义连接对象

Connection conn=null;

//定义语句执行对象

Statement stmt=null;

try{

//第二步:获取连接的对象

//参数设置:连接字符串,数据库用命名,密码

conn=DriverManagergetConnection

("jdbc:sqlserver://localhost:1433;databasename=stuSys", "sa", "");

//本地主机↑ 数据库的编号

数据库文件夹名字

//第三步:获取语句创建对象 (结果集)

stmt=conncreateStatement();

//第四步:发送语句到数据库并执行 注意SQL插入内容用‘ ’ !

String sql="insert into StuInfo values('404','小东',20,'男','9527','xx工商学院',null,null,'S2SJ124')";

//执行sql语句

stmtexecuteUpdate(sql);//执行更新

} catch(SQLException e) {

eprintStackTrace();//打印堆叠追踪

} finally{

try{

//第五步:释放资源非空对象都要顺序进行关闭

if(stmt!=null) stmtclose();

if(conn!=null) connclose();

} catch(SQLException e) {

eprintStackTrace(); //打印堆叠追踪

}

}

Systemoutprintln("程序结束!");

}

}

如果是oracle的话,先建个数据库连接,这样对于a来说b上的表就是远程表了,这个时候就可以把b上的数据表作为基表来进行操作了。如果是sql

server就不清楚了,没进行过相关的研究

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » SQLServer怎么实现跨数据库查询呢(sql跨服务器查询语句)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情