远程Sybase数据库技术支持,联系手机:13811580958,QQ:289965371!

 

随着Sybase被完全整合到SAP下,Sybase原来的支持网站被SAP Support Portal取代。
只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。
目前,原Sybase所有产品(包括:Adaptive Server Enterprise、Sybase IQ、Replication Server、PowerDesigner等)的官方手册仍然可以从http://infocenter.sybase.com/help/index.jsp进行浏览或下载。暂不清楚该网站http://infocenter.sybase.com/help/index.jsp何时会被完全迁移到SAP Support上!
Sybase官方手册英文版有html和pdf两种格式,而中文版手册只有pdf一种格式。为了国内Sybase用户更方便、快捷地搜索Sybase常见产品的官方手册内容,特将中文版Sybase官方手册转为html格式!
Sybase产品官方手册中文版的html格式所有内容的版权归SAP公司所有!本博客站长是Sybase数据库的铁杆粉丝!

如有Sybase数据库技术问题需要咨询,请联系我!

  QQ :289965371 点击这里给我发消息
  Email:

以下官方手册为ASE 15.7 ESD#2中文版:

  1. 新增功能公告 适用于 Windows、Linux 和 UNIX 的 Open Server 15.7 和 SDK 15.7
  2. 新增功能摘要
  3. 新增功能指南
  4. ASE 15.7 发行公告
  5. 配置指南(windows)
  6. 安装指南(windows)
  7. 参考手册:构件块
  8. 参考手册:命令
  9. 参考手册:过程
  10. 参考手册:表
  11. Transact-SQL® 用户指南
  12. 系统管理指南,卷 1
  13. 系统管理指南,卷 2
  14. 性能和调优系列:基础知识
  15. 性能和调优系列:锁定和并发控制
  16. 性能和调优系列:监控表
  17. 性能和调优系列:物理数据库调优
  18. 性能和调优系列:查询处理和抽象计划
  19. 性能和调优系列:使用 sp_sysmon 监控 Adaptive Server
  20. 性能和调优系列:利用统计分析改进性能
  21. 程序员参考 jConnect for JDBC 7.0.7
  22. Adaptive Server Enterprise 中的 Java
  23. 组件集成服务用户指南
  24. Ribo 用户指南
  25. 内存数据库用户指南
  26. Sybase Control Center for Adaptive Server® Enterprise
  27. 安全性管理指南
  28. 实用程序指南

 


< 上一个 | 内容 | 下一步 >

Transact-SQL 命令

以下各页按字母顺序介绍直接或间接影响外部表并进而影响组件集成服 务的 Transact-SQL 命令。对于每个命令,将提供它对组件集成服务的影 响的说明以及组件集成服务处理该命令的方式。有关每个命令的完整说 明,请参见 《参考手册》。

如果组件集成服务并未将某个命令的所有语法传递到远程服务器 (例 如, select 语句的所有子句),则为每个服务器类说明所传递的语法。

每个命令都被分为几个部分来加以描述:

说明 — 包含对命令的简要说明。

语法 — 包含命令的完整 Transact-SQL 语法的说明。

用法 — 包含一般性的、独立于服务器类的组件集成服务处理说明。

服务器类 ASEnterprise — 包含专门针对服务器类 ASEnterprise 的处 理说明。其中包括被转移到 ASEnterprise 类远程服务器的语法。

服务器类 ASAnywhere — 包含专门针对服务器类 ASAnywhere 的处 理说明。其中包括被转移到 ASAnywhere 类远程服务器的语法。

服务器类 ASIQ — 包含专门针对服务器类 ASIQ 的处理说明。其中包 括被转移到 ASIQ 类远程服务器的语法。

服务器类 direct_connect — 包含专门针对服务器类 direct_connect 的 处理说明。其中包括被转移到 direct_connect 类远程服务器的语法。 在这个版本中,所有适用于服务器类 direct_connect 的注释,同样适 用于服务器类 sds


alter table

服务器类

ASEnterprise


服务器类

ASAnywhere


组件集成服务将以下语法转移到配置为类 ASEnterprise 的服务器:

alter table [database.[owner].]table_name

{add column_name datatype [{identity | null}]

{[, next_column]}...}

| [drop column_name [, column_name]}

| modify column_name [data_type] [NULL] | [not null]] [, column_name]}

当用户使用 alter table 命令添加列时,组件集成服务将每列的数据类 型传递到远程服务器,而不进行类型名的转换。

仅限于 ASEnterprise 类服务器:如果 Adaptive Server 11.9.2 或更高 版本,且初始查询中包含 lock 子句,则还会转移此子句。

此类服务器对 alter table 的处理与 ASEnterprise 服务器相同。

服务器类 ASIQ 此类服务器对 alter table 的处理与 ASEnterprise 服务器相同。

服务器类 ASIQ 完全支持 text image 数据类型。

服务器类

direct_connect

组件集成服务将以下语法转移到配置为 direct_connect 类的远程服 务器:

alter table [database.[owner].]table_name add column_name datatype [{identity | null}]

{[, next_column]}...

虽然组件集成服务从 direct_connect 类服务器中请求功能响应,但对 alter table 的支持不是可选的。无论功能响应是什么,组件集成服务 都会将 alter table 转移到远程服务器。

direct_connect 类服务器的行为取决于数据库。转移 Transact-SQL 语 法时可能会出现错误,也可能不出现错误,具体情况取决于远程数 据库处理此语法的能力。

服务器类 direct_connect 不支持 bigintunsigned tinyintunsigned smallintunsigned intunsigned bigint

如果远程服务器的语法功能表明是 Sybase Transact-SQL,则将 Adaptive Server 数据类型发送到远程服务器。如果语法功能表明是 DB2 SQL,则发送 DB2 数据类型。

Direct Connect 不支持 bigintunsigned tinyintunsigned smallintunsigned intunsigned bigint


3-10 显示了这些数据类型的映射情况:

image

3-10alter table DirectConnect 数据类型转换

Adaptive Server

数据类型

DirectConnect

缺省数据类型

image

binary(n) binary(n)

image

bit bit

image

char char

image

date date

image

datetime datetime

image

decimal(p, s) decimal(p, s)

image

float float

image

image image

image

int int

image

money money

image

numeric(p, s) numeric(p, s)

image

nchar(n) nchar(n)

image

nvarchar(n) nvarchar(n)

image

real real

image

smalldatetime smalldatetime

image

smallint smallint

image

smallmoney smallmoney

image

time time

image

timestamp timestamp

image

tinyint tinyint

image

text text

image

unichar unichar

image

unitext unitext

image

varbinary(n) varbinary(n)

image

varchar(n) varchar(n)

image


用法 当服务器接收到 alter table 命令时,它将命令传递给相应的访问方法, 如果:

要执行该命令的对象已与远程或外部存储位置相关联。

命令由一个 add column 请求组成。没有将添加或删除约束的请求传 递给访问方法;而是进行本地处理。

alter table 作为语言请求传递到远程服务器。

另请参见 《参考手册》中的 alter table


case

服务器类

ASEnterprise

服务器类

ASAnywhere


如果初始查询语法中存在 case 表达式,并不会导致查询优化程序拒绝快 速传递模式。

如果初始查询语法中存在 case 表达式,并不会导致查询优化程序拒绝 快速传递模式。

服务器类 ASIQ 没有为此类服务器设置处理 case 表达式的功能。在优化包含 case 表达 式的 SQL 语句时,如果存在 case 表达式,则会导致组件集成服务快速 传递优化拒绝该语句。一旦发生这种情况,本地 Adaptive Server 在从远 程服务器检索数据后必须计算出 case 表达式的值。

服务器类

direct_connect

处理 case 表达式的能力由 RPC sp_capabilities 的结果集决定。如果 direct_connect 指示它可以处理 case 表达式,则当使用快速传递模式处理 查询时,组件集成服务就会将它们转移到 direct_connect

另请参见 《参考手册》中的 case


connect to...disconnect

服务器类

ASEnterprise


服务器类

ASAnywhere

当发出 disconnect 时,组件集成服务将 disconnect 转移到远程服务器,以 便从直通模式中将其关闭。如果未处于直通模式,则可能会发生语法错 误,但组件集成服务忽略这些错误,并且不会将它们转移到客户端。

当发出 connect disconnect 时,不会与 ASAnywhere 发生交互。

服务器类 ASIQ 发出 connect disconnect 时,不会与 ASIQ 发生交互。

服务器类

direct_connect

使用 direct_connect 类服务器发出 connect 时,将向 direct_connect 发送一 个 RPC

sp_thread_props “passthru mode”, 1

发出 disconnect 时,如果已建立直通模式连接的服务器为 direct_connect, 则将向 direct_connect 发送一个 RPC

sp_thread_props “passthru mode”, 0

另请参见 《参考手册》中的 commit


create existing table

服务器类

ASEnterprise

3-11 描述了将远程 Adaptive Server 列映射到本地代理表的列时可 以使用的数据类型:


3-11create existing table Adaptive Server 数据类型转换

image

远程 Adaptive Server

数据类型 允许使用的 Adaptive Server 数据类型

image

binary(n) image binary(n) varbinary(n) ;如果不为

image,则长度必须匹配

image

bit bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

char(n) text nchar(n) nvarchar(n) char(n) varchar(n) unichar univarchar ;如果不为 text ,则长度必须匹配

image

datetime datetimesmalldatetimechar varchar

image

decimal ( p , s ) bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

float bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

image image

image

int bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

money bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

nchar(n) text, nchar(n), nvarchar(n), char(n), varchar(n) ; 如果不为 text ,则长度必须匹配

image

numeric ( p , s ) bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

nvarchar(n) text nchar(n) nvarchar(n) char(n) varchar(n) unichar univarchar ;如果不为 text ,则长度必须匹配

image

real bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

smalldatetime datetimesmalldatetimechar varchar

image

smallint bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

smallmoney bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

text textunitext

image

timestamp timestamp

image

tinyint bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

unichar charvarcharunicharunivarchartextdatetime smalldatetime


image

远程 Adaptive Server

数据类型 允许使用的 Adaptive Server 数据类型

image

univarchar charvarcharunicharunivarchartextdatetime smalldatetime

image

unitext unitext

image

varbinary(n) image binary(n) varbinary(n) ;如果不为

image,则长度必须匹配

image

varchar ( n ) text nchar(n) nvarchar(n) char(n) varchar(n) unichar univarchar ;如果不为 text ,则长度必须匹配

image

image

image

date time

bigint 隐式:binaryvarbinarybittinyintsmallintintdecimalnumericfloatreal

moneysmallmoney

显式:charvarcharunicharunivarchar

image

unsigned tinyint 隐式:binaryvarbinarybittinyintsmallintunsigned smallintintunsigned intbigintunsigned bigintdecimalnumericfloatreal moneysmallmoney

显式:charvarcharunicharunivarchar

不支持:textimagedatetimedatetimesmalldatetime

image

unsigned smallint 隐式:binaryvarbinarybittinyint

smallintunsigned smallintintunsigned intbigintunsigned bigintdecimalnumericfloatreal moneysmallmoney

显式:charvarcharunicharunivarchar

不支持:textimagedatetimedatetimesmalldatetime

image

unsigned int 隐式:binaryvarbinarybittinyintsmallintunsigned smallintintunsigned intbigintunsigned bigintdecimalnumericfloatreal moneysmallmoney

显式:charvarcharunicharunivarchar

不支持:textimagedatetimedatetimesmalldatetime

image


image

远程 Adaptive Server

数据类型 允许使用的 Adaptive Server 数据类型

image

unsigned bigint 隐式:binaryvarbinarybittinyintsmallintunsigned smallintintunsigned intbigintunsigned bigintdecimalnumericfloatreal moneysmallmoney

显式:charvarcharunicharunivarchar

不支持:textimagedatetimedatetimesmalldatetime

image


image

注释 组件集成服务仅支持对 Adaptive Server 15.0 和更高版本执行

unitext

image


服务器类

ASAnywhere

3-12 描述了将远程 Adaptive Server 列映射到本地代理表的列时可 以使用的数据类型:


image

3-12create existing table Adaptive Server Anywhere 数据类型 转换

远程 Adaptive Server Anywhere 数据类型

允许使用的 Adaptive Server Anywhere

数据类型

image

binary(n) image binary(n) varbinary(n) ;如果不为

image,则长度必须匹配

image

bit bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

char(n) text nchar(n) nvarchar(n) char(n) varchar(n) unichar univarchar ;如果不为 text ,则长度必须匹配

image

datetime datetime smalldatetime

image

decimal ( p , s ) bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

float bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

image image

image

int bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

money bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

numeric ( p , s ) bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

real bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

smalldatetime datetime smalldatetime

image

smallint bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

smallmoney bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

text text

image

timestamp timestamp

image

tinyint bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

varbinary ( n ) imagebinary( n ) varbinary( n ) unicharunitextunivarchar ;如果不为 image,则长 度必须匹配

image

varchar(n) text nchar(n) nvarchar(n) char(n) varchar(n) unichar univarchar ;如果不为 text ,则长度必须匹配

image


image

image

远程 Adaptive Server Anywhere 数据类型

image

image

date time

允许使用的 Adaptive Server Anywhere

数据类型

bigint 隐式:binaryvarbinarybittinyint

smallintunsigned smallintintunsigned intbigintunsigned bigintdecimalnumericfloatreal moneysmallmoney

显式:charvarcharunicharunivarchar

不支持:textimagedatetimedatetimesmalldatetime

image

unsigned tinyint 隐式:binaryvarbinarybittinyintsmallintunsigned smallintintunsigned intbigintunsigned bigintdecimalnumericfloatreal moneysmallmoney

显式:charvarcharunicharunivarchar

不支持:textimagedatetimedatetimesmalldatetime

image

unsigned smallint 隐式:binaryvarbinarybittinyintsmallintunsigned smallintintunsigned intbigintunsigned bigintdecimalnumericfloatreal moneysmallmoney

显式:charvarcharunicharunivarchar

不支持:textimagedatetimedatetimesmalldatetime

image

unsigned int 隐式:binaryvarbinarybittinyintsmallintunsigned smallintintunsigned intbigintunsigned bigintdecimalnumericfloatreal moneysmallmoney

显式:charvarcharunicharunivarchar

不支持:textimagedatetimedatetimesmalldatetime

image

unsigned bigint 隐式:binaryvarbinarybittinyintsmallintunsigned smallintintunsigned intbigintunsigned bigintdecimalnumericfloatreal moneysmallmoney

显式:charvarcharunicharunivarchar

不支持:textimagedatetimedatetimesmalldatetime

image


image

远程 Adaptive Server Anywhere 数据类型

允许使用的 Adaptive Server Anywhere

数据类型

image

nchar(n) textnchar(n)nvarchar(n)char(n)varchar(n)unicharunivarchar ;如果不为 text,则长度必须匹配

image

nvarchar(n) textnchar(n)nvarchar(n)char(n)varchar(n)unicharunivarchar ;如果不为 text,则长度必须匹配

image

服务器类 ASIQ text image 数据类型受 ASIQ 12.6 版支持并需要一个许可证。

与服务器类 ASAnywhere 的行为相同。

服务器类

direct_connect

• RPC sp_columns 查询现有表中列的数据类型。

本地列的数据类型不必与远程列的数据类型相同,但它们必须可以 互相转换 (如 3- 13 所示)。否则,将出现列类型错误,而且中止 该命令。


3-13create existing table DirectConnect 数据类型转换

image

DirectConnect

数据类型 允许使用的 Adaptive Server 数据类型

image

binary(n) image binary(n) varbinary(n) ;如果长度不匹配,

则中止该命令

image

binary(16) timestamp

image

bit bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

char(n) text nchar(n) nvarchar(n) char(n) varchar(n) unichar univarchar ;如果长度不匹配,则中止该 命令

image

datetime datetimesmalldatetime

image

decimal ( p , s ) bitdecimalfloatintmoneynumeric

realsmallintsmallmoney tinyint

image

float bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

image image

image

int bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

money bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

nchar(n) text nchar(n) nvarchar(n) char(n) varchar(n) unichar univarchar ;如果长度不匹配,则中止该 命令

image

numeric(p, s) bitdecimalfloatintmoneynumeric

realsmallintsmallmoney tinyint

image

nvarchar(n) text nchar(n) nvarchar(n) char(n) varchar(n)

unicharunivarchar ;如果长度不匹配,则中止该 命令

image

real bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

smalldatetime datetimesmalldatetime

image

smallint bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

smallmoney bitdecimalfloatintmoneynumericrealsmallintsmallmoney tinyint

image

text text

image

timestamp timestampbinary(8) varbinary(8)

image

unichar text nchar(n) nvarchar(n) char(n) varchar(n) unichar univarchar ;如果不为 text ,则长度必须 匹配

image


image

DirectConnect

数据类型 允许使用的 Adaptive Server 数据类型

image

univarchar text nchar(n) nvarchar(n) char(n) varchar(n)

unicharunivarchar ;如果不为 text,则长度必须

匹配

image

image

image

date time

bigint UDB DC/Microsoft 支持 bigint

image


数据类型信息在与该参数相关联的 CS_DATAFMT 结构中传递。下 面的结构字段包含数据类型信息:

datatype — 表示 Adaptive Server 数据类型的 CS_Library 数据类 型。例如, CS_INT_TYPE

usertype — 本机 DBMS 数据类型。在执行 create existing table 命 令的过程中, sp_columns 将此数据类型作为其结果集的一部分 传回到组件集成服务 (参见 《参考手册》中的 sp_columns)。 Adaptive Server 在参数的 usertype 字段中返回此数据类型,以帮 助 DirectConnect 进行数据类型转换。

用法 当接收到 create existing table 命令时,将该命令解释为请求从对象远程或 外部位置导入元数据,以更新系统目录。通过将三个 RPC 发送到与对 象关联的远程服务器来导入此元数据:

sp_tables — 检验远程对象实际是否存在。

sp_columns — 获得远程对象的列属性,以便与 create existing table 中 定义的列属性相比较。

sp_statistics — 获得索引信息以更新本地系统表 sysindexes

另请参见 《参考手册》中的 create existing table


create index

服务器类

ASEnterprise

服务器类

ASAnywhere


组件集成服务将除 on segment_name 以外的所有子句都转移到远程服 务器。

组件集成服务将除 on segment_name 以外的所有子句都转移到远程服 务器。

服务器类 ASIQ 组件集成服务将除 on segment_name 以外的所有子句都转移到远程服 务器。


服务器类

direct_connect

在将语言功能设置为 “Transact-SQL” 时,组件集成服务将除 max_rows_per_page on segment_name 子句以外的所有语法转移到 远程服务器。

用法 如果要执行该命令的对象已与远程或外部存储位置相关联,则当服务器 接收到 create index 命令时,服务器将该命令传递给相应的访问方法。

该命令使用该类的相应语法重新构建,然后传递到远程服务器上执行。

create index 作为语言请求传递到远程服务器。

另请参见 《参考手册》中的 create index


create table

服务器类

ASEnterprise

服务器类

ASAnywhere


组件集成服务在不进行转换的情况下,将每一列的数据类型传递到远程 服务器。

组件集成服务在不进行转换的情况下,将每一列的数据类型传递到远程 服务器。

服务器类 ASIQ 组件集成服务在不进行转换的情况下,将每一列的数据类型传递到远程 服务器。

服务器类

direct_connect

组件集成服务重新构造 create table,并将命令传递给目标 DirectConnect。网关将把这些命令转换为基础 DBMS 可以识别的 形式。

• Direct Connect 不支持 bigintunsigned tinyintunsigned smallintunsigned intunsigned bigint

Adaptive Server 数据类型转换为 DirectConnect 语法模式数据类 型,(如 3-14 所示)。


3-14create table DirectConnect 数据类型转换

image

Adaptive Server 数据类型 DirectConnect 缺省数据类型

image

binary(n) binary(n)

image

bit bit

image

char char

image

datetime datetime

image

decimal(p, s) decimal(p, s)

image

float float

image

image image

image

int int

image

money money

image

numeric(p, s) numeric(p, s)

image

nchar(n) nchar(n)

image

nvarchar(n) nvarchar(n)

image

real real

image

smalldatetime smalldatetime

image

smallint smallint

image

smallmoney smallmoney

image

timestamp timestamp

image

tinyint tinyint

image

text text

image

unichar(n) unichar

image

univarchar (n) char(n) ,用于 bit 数据

image

varbinary(n) varbinary(n)

image

varchar(n) varchar(n)

image

image

image

date time

bigint UDB DC/Microsoft 支持 bigint

image


用法 当服务器接收到 create table 命令时,就会将该命令解释为请求创建新表。 服务器调用要创建表的服务器类的相应访问方法。如果它为远程的,则 创建表。如果此命令成功,就会对系统目录进行更新,并将对象作为创 建它的数据库中的本地表显示到客户端。

使用服务器类的相应语法重新构建 create table。例如,如果服务器类是 direct_connect 并且远程服务器类是 DB2,则该命令在传递到远程服务器 之前使用 Adaptive Server Anywhere 语法重新构建。对于 Adaptive Server 环境特有的数据类型,将进行数据类型转换。


有些服务器类对于能支持或不能支持的数据类型有限制。

create table 作为语言请求传递到远程服务器。

另请参见 《参考手册》中的 create table


delete

服务器类

ASEnterprise

服务器类

ASAnywhere


如果组件集成服务不能按原样转移原始查询,它会采用第 2 种方法执行

delete 命令。

如果组件集成服务不能按原样转移原始查询,它会采用第 2 种方法执行

delete 命令。

服务器类 ASIQ 如果组件集成服务不能按原样转移原始查询,则会发生错误,因为 ASIQ

不支持可更新游标。

服务器类

direct_connect

转移到 direct_connect 类服务器的语法取决于功能协商,功能协商是 在组件集成服务第一次连接到远程 DirectConnect 时完成的。可协商 功能的示例包括:子查询支持、 group by 支持和内置支持。

组件集成服务将数据值作为参数传递给游标或动态 SQL 语句。如果 DirectConnect 支持语言语句,则也可使用语言语句。这些参数采用 Adaptive Server 本机数据类型, DirectConnect 必须将它们转换为适 合目标 DBMS 的格式。

另请参见 《参考手册》中的 delete


drop index

服务器类

ASEnterprise


服务器类

ASAnywhere


组件集成服务将以下 drop index 语法转移到配置为 ASEnterprise 类的远程 服务器:

drop index table_name.index_name

组件集成服务在执行此语句之前,先执行 use database 命令,因为 drop index 语法不允许指定数据库名。

组件集成服务将以下 drop index 语法转移到配置为 ASAnywhere 类的 远程服务器:

drop index table_name.index_name

组件集成服务在执行此语句之前,先执行 use database 命令,因为

drop index 语法不允许指定数据库名。


服务器类 ASIQ 组件集成服务将以下 drop index 语法转移到配置为 ASIQ 类的远程服务器:

drop index table_name.index_name

组件集成服务在执行此语句之前,先执行 use database 命令,因为 drop index 语法不允许指定数据库名。

服务器类

direct_connect

组件集成服务将以下 drop index 语法转移到配置为 direct_connect 类的远 程服务器:

drop index table_name.index_name

用法 如果要执行该命令的对象已与远程或外部存储位置相关联,则当服务器 接收到 drop index 命令时,服务器将该命令传递给相应的访问方法。

drop index 使用该类的相应语法重新构建,并传递到远程服务器上执行。 此命令作为语言请求传递到远程服务器。

另请参见 《参考手册》中的 drop index


fetch

服务器类

ASEnterprise


服务器类

ASAnywhere


如果此游标是只读的,则在打开游标后,组件集成服务在接收到第一个 fetch 时向远程服务器发送一个语言请求。否则,组件集成服务通过 Client-Library 声明一个面向远程服务器的游标。

fetch 语句的处理与 ASEnterprise 相同。

服务器类 ASIQ 当打开游标后,组件集成服务在接收到第一个 fetch 请求时,向远程服 务器发送一个语言请求。

服务器类

direct_connect

组件集成服务处理此类服务器的方式与 ASEnterprise 中服务器的处理方 式相同。

另请参见 closedeallocate cursordeclare cursoropen

《参考手册》中的 fetch


insert

服务器类

ASEnterprise


服务器类

ASAnywhere


完全支持使用 values 关键字的 insert 命令。

text image 之外的所有数据类型都支持使用 select 命令的 insert

命令。只有在 text image 类型的列包含空值时,才支持它们。

如果所有 insert select 表位于同一个远程服务器上,则将整个语 句转移到远程服务器上执行。这称为 “快速传递模式”。如果 select 语句不符合 select 命令的所有快速传递规则,则不使用快速 传递模式。

如果 select 表位于一个远程服务器上,而 insert 表位于另一个服务器 上,则组件集成服务从源表中选择每一行,然后将其插入目标表中。

您无法 insert 到计算列中。

insert 语句的处理与 ASEnterprise 相同。

服务器类 ASIQ insert 语句的处理与 ASEnterprise 相同。

服务器类

direct_connect

完全支持使用 values 关键字的 insert 命令。

完全支持使用select命令的 insert 命令,但是如果表中存在 text image 列,则此表必须具有唯一的索引。使用带 select 命令的 insert 时,如果符合以下条件,则将整个命令发送到远程服务器:

命令中引用的所有表均位于远程服务器上。

来自 DirectConnect 的功能响应表示支持 insert-select 命令。

如果使用 TopN 功能,则您必须具有 order by 子句。

如果两种条件都不符合,则组件集成服务从源表中选择每一行,然 后将其插入目标表。

组件集成服务将数据值作为参数传递给游标或动态 SQL 语句。如果 DirectConnect 支持语言语句,则也可使用语言语句。这些参数采用 Adaptive Server 本机数据类型, DirectConnect 必须将它们转换为适 合目标 DBMS 的格式。

另请参见 《参考手册》中的 insert


readtext

服务器类

ASEnterprise


服务器类

ASAnywhere


当基础表为代理表时,组件集成服务将以下语法转移到远程服务器:

readtext [[database.]owner.]table_name.column_name text_pointer offset size

[using {chars | characters}]

readtext 语句的处理与处理 ASEnterprise 相同。

服务器类 ASIQ readtext 语句的处理与处理 ASEnterprise 相同。

服务器类

direct_connect

如果 DirectConnect 不支持文本指针,则不能发送 readtext,使用它 会出现错误。

如果 DirectConnect 支持文本指针,则组件集成服务将以下语法转移 到远程服务器:

readtext [[database.]owner.]table_name.column_name text_pointer offset size

[using {chars | characters}]

当必须读取 text image 数据时,将发出 readtext。当 select 命令在 选择列表中引用了 text image 列时,或者当 where 子句引用了 text image 列时,将调用 readtext

例如,将代理表 books 映射到远程服务器 foo 上的表 books。其中的 列分别为 idname blurb text 类型)。当发出下述语句时:

select * from books

组件集成服务将以下语法发送到远程服务器: select id, name, textptr(blurb) from foo_books readtext foo_books.blurb @p1 0 0 using chars

另请参见 《参考手册》中的 readtext


select

服务器类

ASEnterprise


服务器类

ASAnywhere


支持所有语法。由于假定远程服务器具有处理 Transact-SQL 语法所 需的各种能力,因此使用快速传递模式将 select 命令的所有元素

(上面提到的除外)转移到远程服务器。

发出 select...into 命令且 into 表位于远程 Adaptive Server 上时,使用 批量复制传送将数据复制到新表中。必须通过将 dboption 设置为 select into / bulkcopy 来配置本地和远程数据库。

支持所有语法。由于假定远程服务器具有处理 Transact-SQL 语法所 需的各种能力,因此使用快速传递模式将 select 命令的所有元素

(上面提到的除外)转移到远程服务器。

如果使用 select...into 格式,且通过 ASAnywhere 接口访问 into 表,则 不使用批量插入功能。相反,组件集成服务使用 Client-Library 来准 备参数化的动态 insert 命令,并为该命令的 select 部分所返回的每一 行执行此命令。

服务器类 ASIQ 支持所有语法。由于假定远程服务器具有处理 Transact-SQL 语法所

需的各种能力,因此使用快速传递模式将 select 命令的所有元素

(上面提到的除外)转移到远程服务器。

服务器类

direct_connect

当组件集成服务首次需要连接到 direct_connect 类服务器时,将对 DirectConnect 发出功能请求。组件集成服务根据响应来决定将 select 命令的哪些部分转移到 DirectConnect。大多数情况下,这取决于与 DirectConnect 交互的 DBMS 的功能。

如果不能使用快速传递模式将整个语句转移到 DirectConnect,组件 集成服务将对不能转移的功能进行补偿。例如,如果远程服务器不 能处理 order by 子句,则不使用快速传递,并且组件集成服务对结 果集执行排序。

组件集成服务将数据值作为参数传递给游标或动态 SQL 语句。如果 DirectConnect 支持语言语句,则也可使用语言语句。这些参数采用 Adaptive Server 本机数据类型, DirectConnect 必须将它们转换为适 合目标 DBMS 的格式。

支持 select...into 命令,但如果表中存在 text image 列,则此表必须 具有唯一的索引。

如果使用 select...into 格式,且通过 DirectConnect 访问 into 表,则不 使用批量插入功能。相反,组件集成服务使用 Client-Library 来准 备动态 insert 命令,然后为该命令的 select 部分返回的每一行执行 此命令。

另请参见 《参考手册》中的 select


truncate table

服务器类

ASEnterprise

服务器类

ASAnywhere


组件集成服务将 truncate table 命令转移到 ASEnterprise 类服务器。 组件集成服务将 truncate table 命令转移到 ASAnywhere 类服务器。

服务器类 ASIQ 组件集成服务将 truncate table 命令转移到 ASIQ 类服务器。

服务器类

direct_connect sds

发送 Transact-SQL 语法:

truncate table [[ database.]owner.]table_name

另请参见 《参考手册》中的 truncate table


update

服务器类

ASEnterprise


服务器类

ASAnywhere


如果组件集成服务不能将整个语句传递到远程服务器,则表上必须 存在唯一索引。

text image 以外的所有数据类型都完全支持使用 update 命令。 除非将 text image 值设置为空,否则不能使用 update 命令更改 text image 数据。而应使用 writetext 命令。

如果未使用快速传递模式,则从源表检索数据,然后使用为处理定 位 update 而设计的单独游标来更新目标表中的值。

update 语句的处理与处理 ASEnterprise 相同。

服务器类 ASIQ update 语句的处理与处理 ASEnterprise 相同。

如果组件集成服务不能按原样转移原始查询,则会发生错误,因为 ASIQ

不支持可更新游标。

服务器类

direct_connect

direct_connect 类服务器支持以下语法:

update [[database.]owner.]{table_name | view_name} set [[[database.]owner.]{table_name.|view_name.}]

column_name1 =

{expression1|NULL|(select_statement)} [, column_name2 =

{expression2|NULL|(select_statement)}]... [where search_conditions]


如果来自远程服务器的功能响应表示支持命令的所有元素,则符合 此语法的 update 命令均使用快速传递模式。可协商功能的示例包括: 子查询支持、 group by 支持和内置支持。

如果远程服务器不支持此命令的所有元素,或者此命令包含 from 子 句,则组件集成服务发出一个查询来获得 set 子句的值,然后向远 程服务器发出一个 update 命令。

组件集成服务将数据值作为参数传递给游标或动态 SQL 语句。如果 DirectConnect 支持语言语句,则也可使用语言语句。这些参数采用 Adaptive Server 本机数据类型, DirectConnect 必须将它们转换为适 合目标 DBMS 的格式。

另请参见 《参考手册》中的 update


update statistics

服务器类

ASEnterprise


如果请求检索统计信息的表没有索引,组件集成服务将发出如下命令:

select count(*) from table_name

这也是在跟踪标志 11209 打开时发出的唯一命令。

如果表带有索引,而且在命令中指定了此索引,组件集成服务将发 出如下命令:

select count(*) from table_name

select count(*) column_name [,column_name, ...] from table_name

group by column_name [,column_name, ..] 列名代表组成索引的一个或多个列。 例如,发出如下命令时:

update statistics customers ind_name

组件集成服务发出以下命令:

select count(*) from customers

select count(*) last_name, first_name from customers

group by last_name, first_name

如果表带有一个或多个索引,但语句中未指定索引,组件集成服务 将发出 select count (*),然后为每个索引发出 select/order by 命令。

您必须使用远程登录使 sa_role 运行代理表上的 update statistic



服务器类

ASAnywhere

Adaptive Server 15.0 或更高版本中,如果代理表指向分区表格, 则只导入全局统计信息。这些代理表中的被集合的统计信息,在 Adaptive Server 15.0 中不进行分区。

此服务器类中对 update statistics 的处理与 Adaptive Server 15.0 以前的服 务器版本相同。

服务器类 ASIQ 此服务器类中对 update statistics 的处理与 Adaptive Server 15.0 以前的服 务器版本相同。

服务器类

direct_connect

此服务器类对 update statistics 的处理与上述 ASEnterprise 服务器类的 处理方法相同。

如果 direct_connect 指示不能处理 group by count(*) 语法,则不会 为 direct_connect 收集统计信息。

另请参见 《参考手册》中的 update statistics


writetext

服务器类

ASEnterprise

服务器类

ASAnywhere


利用与远程服务器的单独连接处理 writetext 命令。 利用与远程服务器的单独连接处理 writetext 命令。

服务器类 ASIQ 利用与远程服务器的单独连接处理 writetext 命令。

服务器类

direct_connect

如果 DirectConnect 支持文本指针,则组件集成服务将 DirectConnect 当 作一个 ASEnterprise 类服务器。

另请参见 《参考手册》中的 writetext




--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具:ReadASADB。
此工具支持ASA v5.0,v6.0,v7.0,v8.0,v9.0,v10.0,v11.0,v12.0等版本。
恢复Sybase SQL Anywhere的工具在国内应该算首创。

ReadASADB功能
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具

  1. 适用于所有的SQL Anywhere版本    包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x
  2. 适用于所有的UltraLite版本
  3. 能够恢复出来表结构和数据
  4. 能够恢复自定义数据类型
  5. 能够恢复存储过程等对象的语法
  6. 能够导出到目标数据库
  7. 能够导出到SQL文件并生成导入脚本
  8. 支持多种字符集  包括:cp850、cp936、gb18030、utf8等
  9. 能够恢复未加密或者简单加密类型的数据
  10. 简单易用
  11. 限制:不支持AES加密的数据文件
请参考:研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具
            SQL Anywhere数据库非常规恢复工具ReadASADB使用介绍

ReadASADB适用场景

各种误操作:

  1. 误截断表(truncate table)
  2. 误删除表(drop table)
  3. 错误的where条件误删数据
  4. 误删除db或log文件
  5. 误删除表中的字段

本工具的应用场景:

1.因为物理磁盘故障、操作系统、系统软件方面或者掉电等等原因导致的Sybase SQL Anywhere数据库无法打开的情况;
2.误操作,包括truncate table,drop table,不正确的where条件导致的误删除等;
Sybase SQL Anywhere无法打开时,比较常见的错误是:Assertion failed。
如:
1、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Checkpoint log: invalid bitmap page -- transaction rolled back
2、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Page number on page does not match page requested -- transaction rolled back
3、Internal database error *** ERROR *** Assertion failed:200502 (9.0.2.2451) Checksum failure on page 23 -- transaction rolled back
4、File is shorter than expected
5、Internal database error *** ERROR *** Assertion failed: 201116 Invalid free list index page found while processing checkpoint log -- transaction rolled back
6、*** ERROR *** Assertion failed: 51901 Page for requested record not a table page or record not present on page等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------