SQL SERVER 链接服务器 以及 openrowset( 二 )


,@ = ‘’ --如果指定,则在删除链接服务器之前要删除登录名映射
–查看链接登录名
s.name ,s. ,s.,s.,
ll.,ll.,ll.,
p.name
from sys. ll
inner join sys. s on s.=ll.
left join sys. p on p.=ll.
where s. = 1
–删除链接服务器登录名映射
exec n ‘远程服务器IP’,NULL
–标注存储
EXEC n
@ = ‘远程服务器IP’ --登录名映射的链接服务器名称
@ = NULL --这是从链接服务器删除的SQL 登录或用户映射的名称
SSMS
选项 动态参数
如果为非零,则表明访问接口允许对参数化查询使用“?”参数标记语法 。仅当该访问接口支持 rs 接口并支持“?”作为参数标记时,才应设置此选项 。如果设置了此选项,则允许SQL针对该访问接口执行参数化查询 。这种对访问接口执行参数化查询的能力会提高某些查询的性能 。
嵌套查询
如果为非零,则表示访问接口允许在 FROM 子句中使用嵌套的语句 。如果设置了此选项,则允许 SQL将某些查询委托给需要在 FROM 子句中嵌套语句的访问接口 。
仅零级
如果为非零,则只对访问接口调用 0 级的 OLE DB 接口 。
允许进程内
如果为非零,则 SQL允许将访问接口实例化为进程内服务器 。如果未设置此选项,则默认行为是在 SQL进程外实例化访问接口 。在 SQL进程外实例化访问接口,可防止 SQL进程在访问接口中出错 。在 SQL进程外实例化访问接口时,不允许更新或插入长的引用列(text、ntext 或 image) 。
非事务更新
如果为非零,则 SQL允许更新,即使不可用时也是如此 。如果启用此选项,对访问接口的更新将不可恢复,因为该访问接口不支持事务 。
作为访问路径的索引
如果为非零,则 SQL尝试使用访问接口的索引来提取数据 。默认情况下,索引只能用于元数据而且从不打开 。
禁止link访问
如果设置了非零值,则 SQL不允许通过和函数对 OLE DB 访问接口进行即席访问 。如果未设置此选项,则 SQL同样不允许进行即席访问 。
存储过程中通过链接服务器访问远程服务器
执行存A服存储过程时会报 ‘未将[所用到的别名] 服务器配置为可用的RPC’ ,如何解决?
很简单,查看链接服务器的选项,将RPC值由False 改为 TRUE 再调试,成功!
也有情况在这里无法更改,解决方案是:
exec sp_configure 'show advanced options', 1; --默认是0GORECONFIGURE WITH OVERRIDE; GO
包含访问 OLE DB 数据源中的远程数据所需的全部连接信息 。当访问链接服务器中的表时,这种方法是一种替代方法,并且是一种使用 OLE DB 连接并访问远程数据的一次性的、特殊的方法 。可以在查询的 FROM 子句中像引用表名那样引用函数 。依据 OLE DB 提供程序的能力,还可以将函数引用为 、 或语句的目标表 。尽管查询可能返回多个结果集,然而只返回第一个 。
语法
( ‘’

SQL SERVER 链接服务器 以及 openrowset

文章插图
, { 'datasource' ; 'user_id' ; 'password'| 'provider_string' }, { [ catalog.] [ schema.] object| 'query' } )
参数
‘’
字符串,它代表在注册表中指定的 OLE DB 提供程序的友好名 。没有默认值 。
‘’
字符串常量,它对应着某个特定的 OLE DB 数据源 。是将被传递到提供程序接口以初始化提供程序的 CE 属性 。通常,这个字符串包含数据库文件的名称、数据库服务器的名称,或者提供程序能理解的用于查找数据库的名称 。
‘’
字符串常量,它是传递到指定 OLE DB 提供程序的用户名 。为连接指定安全上下文,并将它作为属性传递进来以初始化提供程序 。