2. 执行分布式查询(查询连接服务器)
分布式查询指在一个查询中,可以包括对多个数据源数据的查询。
(1) 分布式对象名字
在执行分布式查询时,对于非本地查询对象,必须指明分布式查询对象的名字,以下格式说明具有四部分名字的连接对象:
linked-server-name.catalog-name.schema-name.object-name
其中,
linked-server-name: 连接服务器名
catalog-name: 对应一个数据库名
schema-name: 对应于一个对象所有者
object-name: 对应一个表名
例如,corpserver.northwind.db_owner.authors,说明该分布式对象为corpserver服务器上的northwind数据库,数据库所有者是db_owner,表名是authors。
(2) 允许在连接服务器上使用的Transact-SQL语句
● 带有WHERE子句或JOIN子句的SELECT语句;
● INSERT,UPCATE和DELETE语句。
(3) 不允许在连接服务器上使用的Transact-SQL语句和动作
● CREATE,ALTER 或DROP语句等;
● READTEXT,WRITETEXT和UPDATETEXT等语句。
例1,本例把连接服务器AccountingServer上的northwindremote
数据库中的suppliers表与本地SQL Server上的products表进行连接查询,语句如下:
USE northwind
SELECT productname,companyname
FROM products p JOIN
AccountingServer.northwindremote.dbo.suppliers s
ON p.supplierid = s.supplierid
例2,这个例子使用SELECT
INTO语句,把从连接服务器AccountingServer上的northwindremote 数据库中的suppliers表中查出的数据,传输到本地SQL
Server上的永久表PhoneList中。语句如下:
USE northwind
SELECT companyname,phone
INTO PhoneList
FROM AccountingServer.northwindremote.dbo.suppliers
|