Heim >Datenbank >MySQL-Tutorial >在SQL Server中使用OpenQuery访问其他数据库

在SQL Server中使用OpenQuery访问其他数据库

WBOY
WBOYOriginal
2016-06-07 15:12:425746Durchsuche

OpenQuery 是SQL Server用来与 其他 Server交互的一种技术, 通过OpenQuery,SQL Server 可以直接 访问 其他 数据库 资源。 而 其他 数据库 在OpenQuery 表达式中是以Linked Server 存在的。 使用 sp_linkedservers 可以找到当前 数据库 的所有linked server

OpenQuery 是SQL Server用来与其他Server交互的一种技术,

通过OpenQuery,SQL Server 可以直接访问其他数据库资源。

其他数据库在OpenQuery 表达式中是以Linked Server 存在的。

使用sp_linkedservers 可以找到当前数据库的所有linked server.

也可以在sql server管理工具的“服务器对象”-“连接服务器”中查看当前数据库中的Linked Server:

 

 OpenQuery的表达式可以这么写:

Select * from OpenQuery([linkedServerName],'Select * from table1 where rownum < 10')

而且值得注意的是,如果,你要在OpenQuery中执行如下的数据库语句,

Select * from tbl_emp Where empName = 'leo''

leo' 必须以双引号的形式传入,如下,

Select * from OpenQuery([linkedServerName],'Select * from table1 where empName = ''leo''')

如果要传入一个参数到OPENQUERY里面,

可以组装动态sql,并通过exec执行即可。

DECLARE @Sql VARCHAR(1000)DECLARE @organizationID VARCHAR(10)

SELECT @organizationID = (SELECT ORGANIZATION_ID FROM MYORGS WHERE ORGANIZATION_NAME = 'MMT')

SET @Sql = 'SELECT * from tableName where organization_id='+@organizationID

SET @Sql = 'SELECT * FROM OPENQUERY(BETSYCRP2, ''' + REPLACE(@Sql, '''', '''''') + ''')'

EXEC(@Sql) 


 

 

 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn