挺难的SQL,连工作十几年的老程序员都没有办法。

Oer 2003-10-20 07:07:08
有一机子(SG1)上有一个数据库(SGLC)中有表(Tab_lc)字段(no,sfys,jld)
有一机子(SG2)上有一个数据库(SGJL)中有表(Tab_jl)字段(no,sfys,jld,date,fhdw)
Tab_lc
no sfys jld
1 y 1#
2 y 2#
3 Y 2#
2 Y 1#
3 Y 1#
Tab_jl
no sfys jld date fhdw
1 null 1# 2003-10 aa
2 null 2# 2003-10 bb
3 null 2# 2003-11 bb
2 null 1# 2003-11 cc
我想得到的结果是:select * from tab_jl,sglc..tab_lc where tab_jl.no=sglc..tab_lc.no and sglc..tab_lc.sfys='y' and tab_Jl.jld=sglc..tab_lc.jld
但是这是要在同一始机子上。但我现在是在不同的机子了?
...全文
49 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
YuriOU 2003-10-24
  • 打赏
  • 举报
回复
使用联结服务器:
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO

然后:
select * from tab_jl,别名.数据库名.用户名.tab_lc where tab_jl.no=别名.数据库名.用户名.tab_lc.no and 别名.数据库名.用户名.tab_lc.sfys='y' and tab_Jl.jld=别名.数据库名.用户名.tab_lc.jld
yoki 2003-10-24
  • 打赏
  • 举报
回复
建立链接服务器后就和操作本机上的数据库一样呀
small_pig715 2003-10-24
  • 打赏
  • 举报
回复
up
Oer 2003-10-23
  • 打赏
  • 举报
回复
up
xjwxiong 2003-10-22
  • 打赏
  • 举报
回复
可以在SQL Server 的 Linked Server 中把需要關聯的Server Name 加進去
然後就可以用
主機名.數據庫名.dbo.TableName 的方式連起來了
atlasGS 2003-10-22
  • 打赏
  • 举报
回复
收!
laker_tmj 2003-10-22
  • 打赏
  • 举报
回复
up learn
zdleek 2003-10-22
  • 打赏
  • 举报
回复
UP & MARK
jiangchuandong 2003-10-21
  • 打赏
  • 举报
回复
为什么不用openrowset?
比较两台服务器里的数据很方便呀
zxlkxy 2003-10-21
  • 打赏
  • 举报
回复
好东西!我也想要的!
perfwell 2003-10-21
  • 打赏
  • 举报
回复
保留
samuelpan 2003-10-20
  • 打赏
  • 举报
回复
如果都是sql数据库,可以先对下面的语句建立视图
create view tab as
select * from tab_jl,sglc..tab_lc where tab_jl.no=sglc..tab_lc.no and sglc..tab_lc.sfys='y' and tab_Jl.jld=sglc..tab_lc.jld

然后
select * from tab
CrazyFor 2003-10-20
  • 打赏
  • 举报
回复
建立链接服务器

EXEC sp_addlinkedserver
'别名',
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
GO
----------------------
select col1,col2,col3.... from 别名...table
pengdali 2003-10-20
  • 打赏
  • 举报
回复
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'

远程名是远程ip,就是你在企业管理器或查询分析器登陆远程的哪个。

exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO
Oer 2003-10-20
  • 打赏
  • 举报
回复
谢谢马可,大力。大力,上面的操作都可以,就是语句不行啊!!
pengdali 2003-10-20
  • 打赏
  • 举报
回复
1、先保证ping通

2、在dos下写入telnet ip 1433不会报错

3、用ip连如企业管理器:
企业管理器-->右键SQlserver组-->新建sqlserver注册-->下一步-->写入远程实例名(IP,机器名)-->下一步-->选Sqlserver登陆-->下一步-->写入登陆名与密码(sa,pass)-->下一步-->下一步-->完成

4、如果还不行:
sqlserver服务器-->开始菜单-->SQLserver-->服务器网络实用工具-->启用 WinSock代理-->代理地址:(sqlserver服务器IP)-->代理端口-->1433-->OK了

5、如果还不行:
sqlserver客户端-->开始菜单-->SQLserver-->客户端网络实用工具-->别名-->添加-->写入别名如"大力"-->"网络库"选tcp/ip-->服务器名称写入远程ip或实例名-->OK了
playyuer 2003-10-20
  • 打赏
  • 举报
回复
opendatasource

但要保证 两台 SQL server 能互相网络连通!

A 能连 C ,B 能连 C
不能保证 A 能连 B!
wjt1982 2003-10-20
  • 打赏
  • 举报
回复
不行啊,会
OLE DB 提供程序 'MSDASQL' 报错。
[OLE/DB provider returned message: [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()).]
[OLE/DB provider returned message: [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或访问被拒绝]
OLE DB 错误跟踪[OLE/DB Provider 'MSDASQL' IDBInitialize::Initialize returned 0x80004005: ]。
txlicenhe 2003-10-20
  • 打赏
  • 举报
回复
1:联结服务器
EXEC sp_addlinkedserver
'Test', --名称
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server};SERVER=服务器名;UID=sa;PWD=密码;'
GO
-------以上为添加连接服务器

exec sp_addlinkedsrvlogin 'test','false','sa','sa',''

2:
select * from tab_jl,SG2.sglc..tab_lc where tab_jl.no=SG2.sglc..tab_lc.no and SG2.sglc..tab_lc.sfys='y' and tab_Jl.jld=SG2.sglc..tab_lc.jld
pengdali 2003-10-20
  • 打赏
  • 举报
回复
使用联结服务器:
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go
加载更多回复(1)

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧