随着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
- 安全性管理指南
- 实用程序指南
创建视图
对于每个用户来说,视图名称在已经存在的表和视图中必须唯一。如果 设置了 set quoted_identifier on ,就可以在视图名称上使用分隔标识符。否 则,视图名称必须符合 第 11 页的 “标识符”中给出的标识符规则。
可以在其它视图和引用视图的过程上创建视图。可以在视图上定义主键、 外键和公用键。但不能将规则、缺省值或触发器与视图相关联,也不能 在视上建立索引。不能在临时表上创建临时视图或视图。
create view 的语法
如 第 380 页的 “示例”中的 create view 示例所述,不需要在视图定义语 句的 create 子句中指定任何列名。 Adaptive Server 为视图的列提供了与 select 语句选择列表中所引用的列相同的名称和数据类型。可以用星号 ( * ) 指定 select 列表,如示例所示,也可以是基表中全部或部分列名的列表。
要建立不含重复行的视图,可以使用 select 语句的 distinct 关键字来确保 视图中的每一行都唯一。但是,无法更新 distinct 视图。
下面是一个视图定义语句,它能够使视图中的列名不同于它在基础表中 的名称。
create view pub_view1 (Publisher, City, State) as select pub_name, city, state
from publishers
下面是用另一种方法创建相同的视图,但是在 select 语句中对列进行重 命名:
create view pub_view2
as select Publisher = pub_name,
City = city, State = state from publishers
下一节中的视图定义语句示例说明了将列名包含在 create 子句中的其余 规则。
注释 不能在视图定义中使用局部变量。
将 select 语句和 create view 一起使用
create view 语句中的 select 语句用于定义视图。在所创建的视图的 select
语句中,必须拥有对任何引用的对象进行 select 操作的权限。
可以通过任何复杂的 select 语句用多个表和其它视图创建视图。 对视图定义中的 select 语句有一些限制:
• 不能包含 order by 或 compute 子句。
• 不能包含 into 关键字。
• 不能引用临时表。
创建视图后,描述视图的源文本存储在 syscomments 系统表的 text 列中。
注释 切勿从 syscomments 中删除此信息。而应使用 sp_hidetext 对 syscomments 中的文本加密。请参见 《参考手册:过程》和 第 3 页的 “编译对象 ”。
带有投影的视图定义
要创建一个包含 titles 表中所有行但只含列的一个子集的视图,请输入:
create view titles_view
as select title, type, price, pubdate from titles
create view 子句中不包含任何列名。视图 titles_view 继承了在选择列表中 给定的列名。
下面是一个视图定义语句,该语句使用从 price、 royalty 和 total_sales 列 生成的计算列创建视图:
create view accounts (title, advance, amt_due) as select titles.title_id, advance,
(price * royalty /100) * total_sales from titles, roysched
where price > $15 and advance > $5000
and titles.title_id = roysched.title_id
and total_sales between lorange and hirange
因为通过将 price、royalty 和 total_sales 相乘得到的列没有可继承的名称, 所以必须将列的列表包含在 create 子句中。计算列命名为 amt_due。计 算列在 create 子句中的位置必须与计算时所用的表达式在 select 子句中 的位置相同。
包含集合或内置函数的视图定义必须将列名放在 create 子句中。例如:
create view categories1 (category, average_price) as select type, avg(price)
from titles group by type
当出于安全性考虑而创建视图时,应谨慎使用集合函数和 group by 子句。 对于可以包含在带有 group by 的 select 中的列,由于 Transact-SQL 扩展 不对其进行限制,因此可能会导致视图所返回的信息多于所要求的信息。 例如:
create view categories2 (category, average_price) as select type, avg(price)
from titles
where type = "business"
您可能想用视图将其结果限定为 “business ”类别,但结果中具有其它 类别的信息。请参见 第 77 页的 “将查询结果分组: group by 子句 ”。
带有连接的视图定义
可以创建由多个基表派生的视图。下面是由 authors 和 publishers 表派生 视图的示例。此视图包含与出版社处于同一城市的作者的姓名和所在的 城市,以及每个出版社的名称和所在城市:
create view cities (authorname, acity, publishername, pcity)
as select au_lname, authors.city, pub_name, publishers.city
from authors, publishers
where authors.city = publishers.city
用于外连接的视图
如果定义带有外连接的视图,然后使用外连接的内部表中列的限定条件 查询该视图,则查询的行为表现得就像该限定条件是视图的 where 子句 的一部分,而不是视图中外连接的 on 子句的一部分一样。因此,该限 定条件只适用于外连接完成后的行。例如,如果满足外连接条件,则限 定条件适用于 NULL 扩展行,并相应地消除行。
• 连接视图中不允许使用 delete 语句。
• 在用 with check option 创建的连接视图中不允许使用 insert 语句。
• 在用 with check option 创建的连接视图中,允许使用 update 语句。如 果任何受影响的列出现在 where 子句中,或出现在包含来自多个表 的列的表达式中,更新将会失败。
• 如果通过连接视图来插入或更新行,所有受影响的列都必须属于同 一基表。
可以根据其它视图来定义视图,如下例所示:
create view hiprice_computer as select title, price
from hiprice
where type = "popular_comp"
distinct 视图
可以确保视图中包含的行是唯一的,如下面的示例所示:
create view author_codes as select distinct au_id from titleauthor
如果某行的所有列值都与另一行包含的相同列值相匹配,则该行就是重 复行。两个空值被认为是相同的。
Adaptive Server 在第一次访问视图时,会将 distinct 要求应用到视图定义 中,然后再进行任何投影或选择。视图的外观和操作与任何数据库表类 似。如果选择 distinct 视图的投影 (即只选择视图的某些但选择其所有 行),则得到的结果似乎重复。但视图自身内的每行仍然唯一。例如, 假定创建了一个 distinct 视图 myview,它有三个列,即 a、 b 和 c,其中 包含下列值:
a |
b |
c |
1 |
1 |
2 |
1 |
2 |
3 |
1 |
1 |
0 |
输入此查询后:
select a, b from myview
结果如下所示:
a b
--- ---
1 1
1 2
1 1
(3 rows affected)
第一行与第三行似乎重复。但基础视图行仍然唯一。
可以通过在视图的 select 语句中列出列名 (或 syb_identity 关键字),定 义包含 IDENTITY 列的视图。例如:
create view sales_view
as select syb_identity, stor_id from sales_daily
但是,不能使用 identity_column_name = identity(precision) 语法向视图中 添加新的 IDENTITY 列。
可以使用 syb_identity 关键字选择视图中的 IDENTITY 列,除非视图:
• 多次选择 IDENTITY 列
• 通过 IDENTITY 列计算新列
• 包含一个集合函数
• 连接多个表中的列
• 将 IDENTITY 列作为表达式的一部分包含
在下述情况下, Adaptive Server 不将该列视为视图的 IDENTITY 列。 在对视图执行 sp_help 时,此列显示的 “Identity”值为 0。
在下面的示例中,row_id 列不被认为是 store_discounts 视图的 IDENTITY
列,因为 store_discounts 连接两个表中的列:
create view store_discounts as
select stor_name, discount from stores, new_discounts
where stores.stor_id = new_discounts.stor_id
定义视图时,基础列会保留 IDENTITY 属性。通过视图更新行时,不能 为 IDENTITY 列指定新值。通过视图插入行时, Adaptive Server 为 IDENTITY 列生成新的顺序值。为列的基表设置 identity_insert on 后,只 有表所有者、数据库所有者或系统管理员才能显式地在 IDENTITY 列中 插入值。
通常, Adaptive Server 不对视图的 insert 和 update 语句进行检查来确定 被影响的行是否在此视图的范围内。语句可以将行插入到底层基表中, 但不能插入到视图中,语句还可以更改现有行使其不再符合视图的选择 标准。
使用 with check option 子句创建视图时,通过该视图使用的每个 insert 和 update 都符合视图的选择标准而有效。所有通过视图插入或更新的行都 必须可以通过该视图来查看,否则该语句失败。
下面是用 with check option 创建的视图 stores_ca 的示例。此视图包含有关 位于 California 的商店的信息,但不包含有关位于任何其它州的商店的信 息。此视图是通过选择 stores 表中 state 值为 “CA”的所有行来创建的:
create view stores_ca as select * from stores where state = "CA"
with check option
通过 stores_ca 插入行时, Adaptive Server 检验新行是否在此视图的范围 内。下面的 insert 语句失败,因为新行的 state 值为 “NY”而不是 “CA”:
insert stores_ca
values ("7100", "Castle Books", "351 West 24 St.", "New
York", "NY", "USA", "10011", "Net 30")
通过 stores_cal 更新行时, Adaptive Server 将检验此更新操作是否会导 致此行从视图中消失。下面的 update 语句失败,因为它要将 state 的值 从 “CA”更改为 “MA”。如果允许此更新,就不能再通过该视图看 到该行。
update stores_ca set state = "MA"
where stor_id = "7066"
从其它视图派生的视图
如果视图是用 with check option 创建的,则从 “基”视图派生的所有视 图都必须满足其检查选项要求。必须能通过基视图查看通过派生视图插 入的每一行。通过派生视图更新的每一行都必须能通过基视图查看。
以从 stores_cal 派生的视图 stores_cal30 为例。此新视图包含位于
California 且付款方式为 “Net 30”的商店的有关信息:
create view stores_cal30 as select * from stores_ca where payterms = "Net 30"
因为 stores_cal 是用 with check option 创建的,所以通过 stores_cal30 插入 或更新的所有行都必须可通过 stores_cal 查看。 state 值不是 “CA”的 任何行都会被拒绝。
stores_cal30 本身并没有 with check option 子句。这意味着可以通过 stores_cal30 插入或更新 payterms 值不是 “Net 30”的行。即使无法再通 过 stores_cal30 查看该行,以下 update 语句仍会成功:
update stores_cal30
set payterms = "Net 60" where stor_id = "7067"
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。+-------------------------------------华丽的分割线-------------------------------------------------------------------------