如何在SQL SERVER跨服务器查询数据库
--创建链接服务器
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 '
--查询示例
select from ITSV数据库名dbo表名
--导入示例
select into 表 from ITSV数据库名dbo表名
--以后不再使用时删除链接服务器
exec sp_dropserver 'ITSV ', 'droplogins '
--连接远程/局域网数据(openrowset/openquery/opendatasource)
--1、openrowset
--查询示例
select from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名dbo表名)
--生成本地表
select into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名dbo表名)
--把本地表导入远程表
insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名dbo表名)
select from 本地表
--更新本地表
update b
set b列A=a列A
from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名dbo表名)as a inner join 本地表 b
on acolumn1=bcolumn1
--openquery用法需要创建一个连接
--首先创建一个连接创建链接服务器
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
--查询
select
FROM openquery(ITSV, 'SELECT FROM 数据库dbo表名 ')
--把本地表导入远程表
insert openquery(ITSV, 'SELECT FROM 数据库dbo表名 ')
select from 本地表
--更新本地表
update b
set b列B=a列B
FROM openquery(ITSV, 'SELECT FROM 数据库dbo表名 ') as a
inner join 本地表 b on a列A=b列A
--3、opendatasource/openrowset
SELECT
FROM opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' )testdboroy_ta
--把本地表导入远程表
insert opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ')数据库dbo表名
select from 本地表
1首先连接本机服务器(在VS编辑器中 数据库连接时,选择本机服务器名),用SQL语句取出表A和表B的数据,写入到一个新建的数据库中 2连接局域网中另一个你需要连接的数据库,用SQL语句取出表C和表D的数据,写到上面新建的数据库中。 3在同一个数据库中做连接查询就是了
SQL Server 不存在或拒绝访问在网上找到的相关的解决方法:
(A)1:你如果是独立上网的请把21端口打开局域网把1433端口打开就可以了
2;关闭防火墙!
(B)把数据库连接的 SqlLocalName="(local)" 的(local) 改成 IP试试。可以把(local) 该成127001,或者改成外网IP
(C)打开服务,暂停全文检索及sql server服务 开启sql server服务 再开启全文检索服务
(D)SQL Server 右键属性==>安全选项中的“所有权链接:”“允许跨数据库所有权链接”前面的勾要勾上(此操作需要重起SQL Server)。
我试用了上面的方法都没有起到作用,最后在微软的网站上面下载了SQL的sp3补丁装上去了以后就可以正常安装运行
0条评论