SQL 中OPENQUERY的使用

原文:SQL 中OPENQUERY的使用

OpenQuery 是SQL Server用来与其他Server交互的一种技术,通过OpenQuery,SQL Server 可以直接访问其他数据库资源。

而其他数据库在OpenQuery 表达式中是以Linked Server 存在的。 使用sp_linkedservers 可以找到当前数据库的所有linked server.

例如在sql server 2008数据库中通过链接服务器想访问sql server 2000 的数据库就必须使用OpenQuery了。

OpenQuery的表达式可以这么写:

Select * from OpenQuery([linkedServerName],'Select * from t1 where id < 10')

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

Select * from t1 Where Name = 'ida'

'ida' 必须以双引号的形式传人,如下,

Select * from OpenQuery([linkedServerName],'Select * from t1 where name= ''ida''')
如果是要写入数据到另外的数据库呢?格式如下:
insert into openquery([linkedServerName],
'select id,name,....
 from [dbname].dbo.tbname where 1=0') 
select
id,name,...
from t2 
where ...
 
时间: 2024-09-19 18:47:57

SQL 中OPENQUERY的使用的相关文章

oracle-jdbc执行sql中日期参数问题

问题描述 jdbc执行sql中日期参数问题 select 1 from dual where sysdate='2013-01-01';这样一个sql语句,在jdbc中可以正确执行,在pl/sql中确报错:"ORA-01861: literal does not match format string",select 1 from dual where sysdate='01-1月-2013'在pl/sql中可以正常执行,求教大神,jdbc会改变我的sql语句吗?jdbc是怎么执行sq

SQL中函数 replace 的参数1的数据类型ntext无效的解决方法

今天将一个ACC的数据库转换成ms-sql以后发现在使用replace替换语句的时候出现: SQL中函数 replace 的参数 1 的数据类型 ntext 无效.找了半天找到了解决办法: 因为ntext需要转化下 用如下语句即可解决: 复制代码 代码如下:UPDATE 表 SET 字段=REPLACE(cast(字段 AS varchar(8000)),'被替换的内容','将要替换成的内容') varchar(8000)是字段类型.8000是个很猛的字段,可以根据自己的实际情况改动!

sql 中 case when 语法使用方法

没有,用case when 来代替就行了. 例如,下面的语句显示中文年月 复制代码 代码如下: select getdate() as 日期,case month(getdate()) when 11 then '十一' when 12 then '十二' else substring('一二三四五六七八九十', month(getdate()),1) end+'月' as 月份 CASE 可能是 SQL 中被误用最多的关键字之一.虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法.例

PL/SQL中的多进程通信技术简介

进程 PL/SQL是基于Oracle的一个主流应用程序编程语言,它的特点是将SQL语句与过程化程序开发语言相结合,以实现更为复杂的商业逻辑.本文主要就其中多进程通信进行讨论. 显然,多进程技术是用来提高应用的并发性,进而提高整个系统的执行效率,那么如何在PL/SQL中实现多进程的通信呢?其实,PL/SQL其设计的初衷主要是增强SQL语句的功能,而没有考虑到其他编程语言的高级功能,所以在PL/SQL中实现多进程通信只能借助于Oracle提供的两个开发包:DBMS_PIPE和DBMS_ALERT.

实例演示在SQL中启用全文检索

全文检索 如何在SQL中启用全文检索功能?本文将通过实例向你剖折这个问题.这是一个全文索引的一个例子,首先在查询分析器中使用:  use pubs go --打开数据库全文索引的支持   execute sp_fulltext_database 'enable' go --建立全文目录ft_titles   execute sp_fulltext_catalog 'ft_titles', 'create' go --为titles表建立全文索引数据元,UPKCL_titleidind是主键所建立

SQL中的两个值得注意的特殊符号

在SQL中,表示字符串得引号强烈建议使用单引号(').虽然MySQL也可以使用双引号("),但是为了和SQL Server和Oracle统一,建议都使用单引号.如果在字符串中也有单引号出现的话,在SQL中需要将其替换为两个单引号(''),DBMS会将其解释为一个单引号的.关于SQL的换行符和字符串连接符,在MySQL.SQL Server和Oracle中均有不同,下面以列表显示.  MySQLSQL ServerOracle换行符\n或\r\n或CHAR(10)CHAR(13)CHR(10)字符

SQL中的五种数据类型

数据|数据类型 简要描述一下SQL中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型 字符型 VARCHAR VS CHAR VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要.他们都是用来储存字符串长度小于255的字符. 假如你向一个长度为四十个字符的VARCHAR型字段中输入数据Bill Gates.当你以后从这个字段中取出此数据时,你取出的数据其长度为十个字符--字符串Bill Gates的长度. 现在假如你把字符串输入一个长度为四十个字符的CHAR型字段中,那么当你取

如何在SQL中启用全文检索功能?(实例)

全文检索 如何在SQL中启用全文检索功能? -------------------------------------------------------------------------------- 全文索引的一个例子,在查询分析器中使用:use pubsgo--打开数据库全文索引的支持execute sp_fulltext_database 'enable'go--建立全文目录ft_titlesexecute sp_fulltext_catalog 'ft_titles', 'creat

动态SQL中DESCRIPTOR的应用

动态 动态SQL中DESCRIPTOR的应用 王光红 动态SQL具有的灵活性是众所周知的,本人在此介绍一种应用DESCRIPTOR的动态SQL: $short b_num;$char *command; $char Sql[1024];$short flag;$date Date;$long Number, b_count, j;$long prec;$long type;$long scale;$double money; sprintf(Sql, "select * from table&q