OPENQUERY (TransactSQL)

摘要:
OPENQUERY也可以作为INSERT、UPDATE或DELETE语句的目标表引用。尽管查询可能返回多个结果集,但OPENQUERY只返回第一个结果集。Transact-SQL语法约定语法OPENQUERY参数linked_Server表示链接服务器名称的标识符。此字符串的最大长度为8KB。注意OPENQUERY不接受带参数的变量。OPENQUERY不能用于在链接服务器上执行扩展存储过程。UPDATEOPENQUERYSETname='DifferentName';C、 执行INSERT传递查询下面的示例对示例A中创建的链接服务器使用INSERT传送查询。

对给定的链接服务器执行指定的传递查询。该服务器是 OLE DB 数据源。OPENQUERY 可以在查询的 FROM 子句中引用,就好象它是一个表名。OPENQUERY 也可以作为 INSERT、UPDATE 或 DELETE 语句的目标表进行引用。但这要取决于 OLE DB 访问接口的功能。尽管查询可能返回多个结果集,但是 OPENQUERY 只返回第一个。

主题链接图标Transact-SQL 语法约定

OPENQUERY (TransactSQL)第2张 语法
OPENQUERY ( linked_server ,'query' )
OPENQUERY (TransactSQL)第2张 参数
linked_server

表示链接服务器名称的标识符。

'query'

在链接服务器中执行的查询字符串。该字符串的最大长度为 8 KB。

OPENQUERY (TransactSQL)第2张 注释

OPENQUERY 不接受其参数的变量。

OPENQUERY 不能用于对链接服务器执行扩展存储过程。但是,通过使用四部分名称,可以在链接服务器上执行扩展存储过程。例如:

EXEC SeattleSales.master.dbo.xp_msver
OPENQUERY (TransactSQL)第2张 权限

任何用户都可以执行 OPENQUERY。用于连接到远程服务器的权限是从为链接服务器定义的设置中获取的。

OPENQUERY (TransactSQL)第2张 示例

A. 执行 SELECT 传递查询

以下示例将使用“用于 Oracle 的 Microsoft 访问接口”针对 Oracle 数据库创建一个名为 OracleSvr 的链接服务器。然后,该示例针对此链接服务器使用 SELECT 传递查询。

ms188427.note(zh-cn,SQL.100).gif注意:
本示例假定已经创建了一个名为 ORCLDB 的 Oracle 数据库别名。
EXEC sp_addlinkedserver 'OracleSvr', 
'Oracle 7.3',
'MSDAORA',
'ORCLDB';
GO
SELECT *
FROM OPENQUERY(OracleSvr, 'SELECT name, id FROM joe.titles');
GO

B. 执行 UPDATE 传递查询

以下示例针对示例 A 中创建的链接服务器使用 UPDATE 传递查询。

UPDATE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE id = 101') 
SET name = 'ADifferentName';

C. 执行 INSERT 传递查询

以下示例针对示例 A 中创建的链接服务器使用 INSERT 传递查询。

INSERT OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles')
VALUES ('NewTitle');

D. 执行 DELETE 传递查询

以下示例使用 DELETE 传递查询删除示例 C 中插入的行。

DELETE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');

免责声明:文章转载自《OPENQUERY (TransactSQL)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇centos7 的systemctl 和 防火墙 firewalld 的应用IOS AudioServicesPlaySystemSound 后台锁屏播放下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Mysql运维管理-Mysql增量备份及分库分表备份数据恢复实战12

1. MySQL数据库的备份与恢复 1.1 Mysqldump的工作原理? 利用mysqldump命令备份的过程,实际上就是把数据从mysql库里以逻辑的sql语句的形式直接输出或者生成备份的文件的过程。 备份的数据过滤注释都是sql语句,结果如下: [root@localhost opt]# egrep -v "#|*|--|^$" /opt/mysql...

mysql数据库命令使用

1、mysql> SHOW GLOBAL STATUS LIKE'Open_files';     #当前打开文件数  2、mysql> SHOW VARIABLES LIKE'open_files_limit';       #最大打开文件数  3、解决办法: 5.6 GTID版本不支持这种语法  create table B select ...

el-table表格树状图复选框全选问题

应用场景 表格数据有层级关系,需要用到表格的树状图结构!!!,同时,可全选表格数据,跟全勾选子节点数据,效果如下 实现方法 根据element官网实现,实现完,发现树形表格加复选框后,子结构无法选中的问题。于是在table上监听点击和全选,根据数据有子节点来手动切换选中与否。 解决方法如下: template如下: <el-table ref=...

sql jion

    A Visual Explanation of SQL Joins I thought Ligaya Turmelle's post on SQL joins was a great primer for novice developers. Since SQL joins appear to be set-based, the use of V...

layui给select下拉框赋值

转: layui给select下拉框赋值 layui给select下拉框赋值 //重新渲染表单函数 function renderForm() { layui.use('form', function() { var form = layui.form(); //...

日记账导入API

PROCEDURE IMPORT_GL_INTERFACE IS CURSOR CUR_GL_TEMP IS SELECT GL.REFERENCE1, --批名 GL.REFERENCE2, --批说明 GL.GL_NAME, --日记账 GL.DESCRIPTION, --日记账说明 GL.SET_BOOK_NAME, --分类账套 GL.PERIO...