随着Sybase被完全整合到SAP下,Sybase原来的支持网站被SAP Support Portal取代。
只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。
目前,原Sybase所有产品(包括:Adaptive Server Enterprise、Sybase IQ、Replication Server、PowerDesigner等)的官方手册仍然可以从https://infocenter.sybase.com/help/index.jsp进行浏览或下载。暂不清楚该网站https://infocenter.sybase.com/help/index.jsp何时会被完全迁移到SAP Support上!
Sybase官方手册英文版有html和pdf两种格式,而中文版手册只有pdf一种格式。为了国内Sybase用户更方便、快捷地搜索Sybase常见产品的官方手册内容,特将中文版Sybase官方手册转为html格式!
Sybase产品官方手册中文版的html格式所有内容的版权归SAP公司所有!本博客站长是Sybase数据库的铁杆粉丝!
如有Sybase数据库技术问题需要咨询,请联系我!
以下官方手册为ASE 15.7 ESD#2中文版:
- 新增功能公告 适用于 Windows、Linux 和 UNIX 的 Open Server 15.7 和 SDK 15.7
- 新增功能摘要
- 新增功能指南
- ASE 15.7 发行公告
- 配置指南(windows)
- 安装指南(windows)
- 参考手册:构件块
- 参考手册:命令
- 参考手册:过程
- 参考手册:表
- Transact-SQL® 用户指南
- 系统管理指南,卷 1
- 系统管理指南,卷 2
- 性能和调优系列:基础知识
- 性能和调优系列:锁定和并发控制
- 性能和调优系列:监控表
- 性能和调优系列:物理数据库调优
- 性能和调优系列:查询处理和抽象计划
- 性能和调优系列:使用 sp_sysmon 监控 Adaptive Server
- 性能和调优系列:利用统计分析改进性能
- 程序员参考 jConnect for JDBC 7.0.7
- Adaptive Server Enterprise 中的 Java
- 组件集成服务用户指南
- Ribo 用户指南
- 内存数据库用户指南
- Sybase Control Center for Adaptive Server® Enterprise
- 安全性管理指南
- 实用程序指南
组合查询: union 运算符
union 运算符将两个或更多个查询的结果组合为一个结果集。使用 union
的 Transact-SQL 扩展可以:
• 在 insert 语句的 select 子句中使用 union。
• 当 select 语句中有 union 时,在 select 语句的 order by 子句中指定新的 列标题。
请参见 《参考手册:命令》。
图 3-1 显示两个表 T1 和 T2。 T1 显示两列 “a, char(4)”和 “b, char(4)”。 T2 包含两列 “a, char(4)”和 “b, int”。每个表有三行:在 T1 中,第 1 行在 “a”列中显示 “abc”,在 “b”列中显示 “1”。 T1 的第 2 行在 “a”列中显示 “def”,在 “b”列中显示 “2”。第 3 行在 “a”列中显示 “ghi”,在 “b int”列中显示 “3”。表 T4 的第 1 行在 “a”列中显示 “ghi”,在 “b”列中显示 “1”;第 2 行在 “a”列中 显示 “jkl”,在 “b”列中显示 “2”;第 3 行 “a”列中显示 “mno”, 在 “b(int)”列中显示 “3”。
表 T2 |
a b char(4) int |
ghi 3 jkl 4 mno 5 |
表 T2 |
a b char(4) int |
ghi 3 jkl 4 mno 5 |
图 3-1:合并查询的联合
表 T1 |
a b char(4) int |
abc 1 def 2 ghi 3 |
以下查询是在两个表之间创建 union:
create table T1 (a char(4), b int) insert T1 values ("abc", 1)
insert T1 values ("def", 2) insert T1 values ("ghi", 3)
create table T2 (a char(4), b int) insert T2 values ("ghi", 3)
insert T2 values ("jkl", 4) insert T2 values ("mno", 5) select * from T1
union
select * from T2
a b
---- ---------
abc 1
def 2
ghi 3
jkl 4
mno 5
缺省情况下, union 运算符从结果集中删除重复的行。使用 all 选项以包 括重复行。还请注意,结果集中的列与 T1 中的列名称相同。可以在 Transact-SQL 语句中使用任意数量的 union 运算符。例如:
x union y union z
缺省情况下, Adaptive Server 从左向右计算含有 union 运算符的语句的 值。可以使用小括号指定不同的计算顺序。
例如,以下两个表达式不等效:
x union all (y union z)
(x union all y) union z
在第一个表达式中,删除了 y 与 z 的联合中的重复值。然后,该集合与 x 并集中的重复值不 被删除。在第二个表达式中,重复值包含在 x 与 y 的并集中,但它们在随后该集合与 z 的并集中被删除;all 不影响该语句 的最终结果。
union 查询的准则
使用 union 语句时:
• union 语句中的所有选择列表必须具有相同数量的表达式 (如列名、 算术表达式和集合函数)。以下语句无效,因为第一个选择列表比 第二个选择列表长:
create table stores_east (stor_id char(4) not null, stor_name varchar(40) null, stor_address varchar(40) null, city varchar(20) null,
state char(2) null, country varchar(12) null, postalcode char(10) null, payterms varchar(12) null)
select stor_id, city, state from stores union
select stor_id, city from stores_east drop table stores_east
• 所有表中的相应列或单个查询中使用的列的任何子集必须具有相同 的数据类型,或两种数据类型之间必须可以进行隐式数据转换,否 则必须提供显式换。例如,在 char 数据类型的列与 int 数据类型的列 之间不能执行 union 运算,除非提供显式转换。但是,在 money 数 据类型的列与 int 数据类型的列之间可以执行 union 运算。请参见
《参考手册:命令》中的 union 和 《参考手册:构件块》中的第 1 章 “系统数据类型和用户定义的数据类型”。
• 必须以相同顺序将相应的列置于 union 语句的各个查询中,因为 union
按照查询中给定的顺序对各列逐一进行比较。例如,假设有以下表:
表 T4 |
a b char(4) int |
abc 1 def 2 ghi 3 |
表 T4 |
a b char(4) int |
abc 1 def 2 ghi 3 |
图 3-2:比较列的联合
表 T3 |
a b int char(4) |
1 abc 2 def 3 ghi |
表 3-2 显示两个表 T3 和 T4。 T3 有两列:“a” int 和 “b” char(4)。 T4 包含两列:“a” char(4) 和 “b” int。每个表有三行:第 1 行在 “a”列中显示 “1”,在 “b”列中显示 “abc”。第 2 行在 “a” 列中显示 “2”,在 “b”列中显示 “def”。第 3 行在 “a”列中显 示 “3”,在 “b char”列中显示 “ghi”。表 T4 的第 1 行在 “a” 列中显示 “abc”,在 “b”列中显示 “1”;第 2 行在 “a”列中 显示 “def”,在 “b”列中显示 “2”;第 3 行在 “a”列中显示 “ghi”,在 “b(int)”列中显示 “3”。
输入此查询:
select a, b from T3 union
select b, a from T4
此查询生成:
a b
--------- ---
1 abc
2 def
3 ghi
(3 rows affected)
但是,以下查询会导致错误消息,因为相应列的数据类型不兼容:
select a, b from T3 union
select a, b from T4 drop table T3
drop table T4
在 union 语句中组合使用不同 (但兼容)的数据类型 (如 float 和 int) 时, Adaptive Server 将其转换为精度最高的数据类型。
• Adaptive Server 从 union 语句中第一个单个查询中提取由 union 生成 的表中的列名。因此,要为结果集定义新的列标题,请在第一个查 询中这样做。此外,若要按新名称引用结果集中的列 (例如在 order by 语句中),请在第一个 select 语句中以这种方式引用它。
以下是正确的查询:
select Cities = city from stores union
select city from authors order by Cities
将 union 与其它 Transact-SQL 命令一起使用
与其它 Transact-SQL 命令一起使用 union 语句时:
• union 语句中的第一个查询可以包含 into 子句,该子句创建用于保存 最终结果集的表。例如,以下语句创建名为 results 的表,该表包含 表 publishers、 stores 和 salesdetail 的联合:
use mastersp_dboption pubs2, "select into", true use pubs2
checkpoint
select pub_id, pub_name, city into results from publishers
union
select stor_id, stor_name, city from stores union
select stor_id, title_id, ord_num from salesdetail
只能在第一个查询中使用 into 子句;如果它出现在其它任何位置, 都会显示错误消息。
• 只能在 union 语句的末尾使用 order by 和 compute 子句,以定义最终 结果的顺序或计算汇总值。不能在组成 union 语句的单个查询中使 用它们。特别是,不能在 insert...select 语句中使用 compute 子句。
• 只能在单个查询中使用 group by 和 having 子句;不能使用它们影响 最终结果集。
• 也可在 insert 语句中使用 union 运算符。例如:
create table tour (city varchar(20), state char(2)) insert into tour
select city, state from stores union
select city, state from authors drop table tour
• 从 Adaptive Server 12.5 版开始,您可以在 create view 语句中使用 union 运算符。但是,如果使用 Adaptive Server 的早期版本,则不能 在 create view 语句中使用 union 运算符。
• 不能对 text 和 image 列使用 union 运算符。
• 不能在涉及 union 运算符的语句中使用 for browse 子句。
Sybase SQL Anywhere数据库恢复工具ReadASADB:
之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具: ReadASADB。此工具支持ASA v5.0, v6.0, v7.0, v8.0, v9.0, v10.0, v11.0, v12.0, v16.0, v17.0等版本。
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具。
恢复Sybase SQL Anywhere的工具在国内处于领先水平。
Sybase SQL Anywhere数据库恢复工具ReadASADB功能
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具
- 适用于所有的SQL Anywhere版本 包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x,16.x,17.x
- 适用于所有的UltraLite版本
- 能够恢复出来表结构和数据
- 能够恢复自定义数据类型
- 能够恢复存储过程等对象的语法
- 能够导出到目标数据库
- 能够导出到SQL文件并生成导入脚本
- 支持多种字符集,包括:cp850、cp936、gb18030、utf8等
- 能够恢复未加密或者简单加密类型的数据
- 简单易用
- 限制:不支持AES加密的数据文件
SQL Anywhere数据库非常规恢复工具ReadASADB使用介绍
Sybase SQL Anywhere数据库恢复工具ReadASADB适用场景
各种误操作:
- 误截断表(truncate table)
- 误删除表(drop table)
- 错误的where条件误删数据
- 误删除db或log文件
- 误删除表中的字段
Sybase SQL Anywhere数据库恢复工具ReadASADB的应用场景:
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
7、*** ERROR *** Assertion failed: 201417 (7.0.4.3541) Invalid count or free space offset detected on a table page
8、Internal database error *** ERROR *** Assertion failed: 201425 (8.0.3.5594) Invalid count or free space offset detected on a free list page -- transaction rolled back.
9、Internal database error *** ERROR *** Assertion failed: 100702 (8.0.1.2600) Unable to modify indexes for a row referenced in rollback log -- transaction rolled back
Sybase ASE数据库恢复工具READSYBDEVICE:
一个不依赖数据库管理系统、直接从Sybase数据库设备文件上提取数据的业内领先的恢复工具!能够从损坏的Sybase ASE设备文件(.dat)上提取数据的非常规恢复工具。
Sybase ASE数据库恢复工具READSYBDEVICE的主要功能:
- 被勒索病毒加密数据文件及备份文件情况下的恢复;
- 系统崩溃只剩下数据文件的情况下的恢复,甚至数据库文件不存在而只有损坏的备份文件情况下的恢复;
- 因断电、硬盘坏道等造成数据库文件损坏情况下的恢复;
- delete数据恢复、误update数据恢复、误删除表(drop)恢复、误truncate表恢复 等;
- 各种Sybase内部系统表损坏、索引错误的修复;
- master数据库损坏而无法正常运行情况下的恢复;
- Sybase数据库被标记为可疑,不可用等情况的恢复;
- Sybase数据库中数据文件内部出现坏块情况下的恢复;
- Sybase数据库无数据文件但有日志文件的情况下的恢复;
- Sybase数据库只有数据文件无任何日志文件的情况下的恢复;
- Sybase数据文件被误删除情况下的碎片提取恢复;
- 磁盘阵列上的Sybase数据库被误格式化情况下的数据库恢复;
- 数据库sysobjects等系统表损坏无法正常应用情况下的恢复;
- Sybase数据库还原数据库出现失败情况下的恢复;
- Sybase数据库只剩下损坏的备份文件情况下的恢复。
Sybase ASE数据库恢复工具READSYBDEVICE支持的版本:
Sybase ASE 11.0.x,11.5.x,11.9.x,12.0.x,12.5.x,15.0.x,15.5.x,15.7.x,16.0.xSQL Server数据库恢复工具SQLRescue:
一个不依赖数据库管理系统、直接从SQL Server数据库文件上提取数据的业内领先的恢复工具!能够从损坏的SQL Server数据库文件(.mdf)上提取数据的非常规恢复工具。
SQL Server数据库恢复工具SQLRescue的主要功能:
- 系统崩溃只剩下数据文件的情况下的恢复,即无日志文件或者日志文件损坏情况下的恢复;
- 断电导致数据库文件损坏情况下的恢复;
- 硬盘坏道造成数据库损坏情况下的恢复;
- 数据文件内部存在坏页情况下的恢复;
- 企业管理器误删除数据表记录,管理软件误删除数据表记录的恢复;
- 并闩锁错误、格式化、误删除后导致软件不能使用的情况;
- 无法读取并闩锁页sysindexes失败情况下的修复;
- 数据文件被误删除情况下的碎片提取恢复;
- 系统表损坏、索引错误、误删除数据库表、删除记录的数据找回;
- master数据库损坏而无法正常运行情况下的恢复;
- 数据文件无法附加情况下的数据恢复;
- 数据库被标记为可疑,质疑,不可用等情况的恢复;
- 数据库sysobjects等系统表损坏情况下的恢复;
- 数据被误(drop、delete、truncate)删除表数据的恢复,误update后的数据恢复等;
- 还原时报一致性错误,错误823等情况下的数据恢复,各种错误提示的数据库文件修复;
- 数据库被误格式化等情况下的数据库恢复;
- 日志收缩造成数据库损坏情况下的恢复;
- 仅剩损坏的备份文件情况下的恢复。
SQL Server数据库恢复工具SQLRescue技术特点:
只要SQL Server数据库的数据文件存在,我们就有办法帮您从数据文件中找回重要数据。- 从数据文件中直接恢复数据
- 不能附加时直接恢复数据并生成新的数据库
- 系统表损坏的数据库修复
- 快速修复SQL 823错误、连接中断错误
SQL Server数据库恢复工具SQLRescue支持的版本:
Microsoft SQL Server 7.0, 2000, 2005, 2008, 2008R2, 2012, 2014, 2016, 2017,2019。+-------------------------------------华丽的分割线-------------------------------------------------------------------------