sp_remotesql <server>, <query>[, <query2>, ... , <query254>]
<server>
是使用 sp_addserver 定义的远程服务器的名称。
<query>
是查询缓冲区,其最大长度为 255 个字符。
<query2> … <query254>
是查询缓存区,其最大长度为 255 个字符。如果提供了这些参数,将把它们与 <query1> 的内容并置为一个查询缓冲区。
将查询缓冲区传递到 FREDS_SERVER,该服务器将解释 select @@version 并将结果返回到客户端。SAP ASE 服务器不会解释结果:
sp_remotesql FREDS_SERVER, "select @@version"
####示例 2
在存储过程中使用 sp_remotesql。此示例和上一示例向客户端返回相同的信息:
create procedure freds_version
as
exec sp_remotesql FREDS_SERVER, "select @@version"
go
exec freds_version
go
将两个查询缓冲区并置为一个缓冲区,并将完整的 insert 语句传递到 DCO_SERVER 以进行处理。insert 语句的语法是 DCO_SERVER 能够理解的格式。此服务器不解释返回的信息。此示例还检查 @@error 中返回的值。
sp_remotesql DCO_SERVER,
"insert into remote_table
(numbercol,intcol, floatcol,datecol )",
"values (109.26,75, 100E5,'10-AUG-85')"
select @@error
说明如何将本地变量用作 sp_remotesql 的参数:
declare @servname varchar(30)
declare @querybuf varchar(200)
select @servname = "DCO_SERV"
select @querybuf = "select table_name
from all_tables
where owner = 'SYS'"
exec sp_remotesql @servname, @querybuf
使用 sp_remotesql 时,还存在一些其它注意事项: