在SQL Server中,数据表的完整名称是采用四级结构:
数据库服务器名称.数据库名.用户名.表名
平时,我们简单使用数据库时,大多数都是在同一数据库服务器上、同一数据库中、操作的用户都是数据库所有者(dbo),所以,我们可以简单地使用类似下面的命令:
select * from <表名>
如果访问的数据是跨服务器、跨数据库、不同操作用户时,就要使用如下形式:
select * from <数据服务器名>.<数据库名>.<用户>.<表名>
如果要访问的数据非SQL Server服务器提供,就称为异构数据库,要使用OPENDATASOURCE ( provider_name, init_string )
函数来连接服务器,它在查询命令中相当于“<数据服务器名>”这一部分。
有些异构类数据库本身只有一个表,所以中间的“<数据库名>”、“<用户>”就可省略,但结构要保持完整,就成了:
select * from OPENDATASOURCE()...<表名>
以下两个也是用于连接异构数据表的函数,好象比OPENDATASOURCE()更常用。
OPENQUERY ( linked_server , 'query' )
OPENROWSET ( 'provider_name' , { 'datasource' ; 'user_id' ; 'password'| 'provider_string' } , { [ catalog.] schema.] object | 'query' } )
不知道有没有说清楚,希望能对你有所帮助!