如何在SQL SERVER跨服务器查询数据库

如何在SQL SERVER跨服务器查询数据库,第1张

--创建链接服务器

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补丁装上去了以后就可以正常安装运行

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何在SQL SERVER跨服务器查询数据库

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情