sp_defaultloc <dbname>, <defaultloc>, <defaulttype>
<dbname>
是要映射到远程存储位置的数据库的名称。必须已通过 create database 语句对该数据库进行了定义。不能将系统数据库映射到远程位置。
<defaultloc>
是要将数据库映射到的远程存储位置。若要指示服务器删除某一数据库现有的缺省映射,请将此参数设置为 NULL。<defaultloc> 的值必须以句点(.)结束,如下所示:
<server>.<dbname>.<owner>.
<defaulttype>
是指定对象格式的值之一,而对象是由 <defaulttype> 值引起来:
table – 指示由 <object_loc> 指定的对象是远程服务器可以访问的表。该值是 <defaulttype> 的缺省值。
view – 指示由 <object_loc> 指定的对象是由远程服务器管理并被作为表来处理的视图。
rpc – 指示由 <object_loc> 指定的对象是由远程服务器管理的 RPC;RPC 的结果集将作为只读表处理。
sp_defaultloc 在名为 MYSERVER 的远程服务器中定义远程存储位置 pubs.dbo。它将数据库 pubs 映射到该远程位置。create table book1 语句将在远程位置上创建一个名为 book1 的表。用于 bookN 的 create existing table 语句将要求 pubs.dbo.bookN 已存在于远程位置,并且有关表 bookN 的信息要存储在本地表 bookN 中:
sp_defaultloc pubs, MYSERVER.pubs.dbo., table
create table pubs.dbo.book1 (bridges char(15))
删除数据库 pubs 到远程位置的映射:
sp_defaultloc pubs, NULL
标识出远程存储位置 wallst.nasdaq.dbo,其中“wallst”是为 <server_name> 提供的值,“nasdaq”是为 <database> 提供的,“dbo”是为 <owner> 提供的。RPC sybase 必须已存在于远程位置。create existing table sybase 语句将有关 RPC sybase 结果集的信息存储到本地表 ticktape 中。RPC sybase 的结果集被认为是只读表。对于 RPC,不支持插入、更新和删除:
sp_defaultloc ticktape, wallst.nasdaq.dbo., rpc
create existing table sybase (bestbuy integer)
使用 sp_defaultloc 时,还存在一些其它注意事项:
<defaulttype> 是 table、view 或 rpc 时,<defaultloc> 参数将采取以下形式:
<server_name>.<dbname>.<owner>.
a) <defaultloc> 说明必须以句点(.)结束。
b) <server_name> 表示已经由 sp_addserver 添加到 sysservers 中的服务器。<server_name> 参数是必需的。
c) <dbname> 不一定是必需的。某些服务器类不支持它。
d) 应始终提供
<object_loc> 指定的位置创建该表。create existing table 语句将有关现有远程对象的信息存储在本地表中。
<dbname> 中表的所有引用(通过 select、insert、delete 和 update)都将映射到正确的位置。