提供7*24专业Sybase数据库远程及现场技术支持,Sybase ASE及Sybase SQL Anywhere数据库修复服务,
请联系电话: (微信),QQ: 289965371!
We supply technical support for Sybase ASE and Sybase SQL Anywhere, also have many years of experience in recovering data from damanged Sybase devices.
Please contact us:
Phone:
Wechat: 13811580958
QQ: 289965371 联系我们获取数据库技术支持!
Email: 289965371@qq.com
扫描下方微信,联系我们:
扫描雨翰数据恢复官方微信获取专业数据库恢复服务

 

随着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数据库技术问题需要咨询,请联系我!

  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. 实用程序指南

 


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

添加新数据 ‌ ‌


使用 insert 命令通过两种方式向数据库中添加行:

• 使用 values 关键字指定新行中部分或全部列的值。使用 values 关键 字的 insert 命令的简化语法为:

insert table_name

values (constant1, constant2, ...)


• 可以在 insert 语句中使用 select 语句,从一个或多个表 (上限为 50 个表,包括要插入的表)中取值。使用 select 语句的 insert 命令的简 化语法为:

insert table_name select column_list from table_list

where search_conditions


image

注释 不能在 insert 语句内部的 select 语句中使用 compute 子句,因 为包含 compute 的语句不会生成常规行。

image


使用 insert 来添加 text、 unitext 或 image 值时,所有数据将写入事务 日志中。可以使用 writetext 命令来添加这些值,而不记录可能包含 text、 unitext 或 image 值的长数据块。请参见 第 218 页的 “插入数据 到指定列 ” 和 第 235 页的 “更改 text 、 unitext 和 image 数据 ”。


使用 values 添加新行‌

以下 insert 语句在 publishers 表中添加一个新行,从而为该行中的每个列 指定一个值:

insert into publishers

values ("1622", "Jardin, Inc.", "Camden", "NJ")

键入数据值的顺序应与初始 create table 语句中列名称的顺序相同,即, 首先是 ID 号,然后是名称,接着是城市,最后是州。 values 数据用括 号括起来,并且所有的字符数据用单引号或双引号引起。

对添加的每一行,使用单独的 insert 语句。


插入数据到指定列 ‌


可通过仅指定某些列及其数据,将数据添加到某行的这些列。不包含在 列列表中的所有其它列,必须定义为允许空值。被跳过的列可接受缺省 值。如被跳过的列有绑定缺省值,则使用缺省值。 ‌

您可能希望使用这种形式的 insert 命令,在行中插入除 text、 unitext 或 image 以外的所有其它值,然后使用 writetext 插入长数据值,以免在事 务日志中存储这些值。也可使用这种形式的命令跳过 timestamp 数据。


例如,只将数据添加入两列, pub_id 和 pub_name,需要如下命令:

insert into publishers (pub_id, pub_name) values ("1756", "The Health Center")

列出列名的顺序必须与列出值的顺序一致。下面的示例产生与前一个示 例相同的结果:

insert publishers (pub_name, pub_id) values("The Health Center", "1756")

两个 insert 语句都将 “1756”放到标识号列中,并将 “The Health Center”放到出版社名称列中。因为 publishers 中的 pub_id 列具有唯一索 引,所以无法执行这两条 insert 语句;第二次尝试插入 pub_id 值 “1756”会产生错误消息。

以下 select 语句显示已添加到 publishers 中的行:

select *

from publishers

where pub_name = "The Health Center"

pub_id

pub_name

city

state

-------

-----------------

------

-------

1756

The Health Center

NULL

NULL

Adaptive Server 将 Null 值输入 city 和 state 列中,因为在 insert 语句中没 有给这些列赋值,并且 publisher 表允许这些列中包含 Null 值。


限制列数据:规则


可创建一个规则并将其绑定到列或用户定义的数据类型。规则约束能或 不能添加的数据类型。

例如,一个名为 pub_idrule 的规则绑定到 publishers 表的 pub_id 列,该规 则指定可接受的 publisher 标识号。可接受的 ID 是 “1389”、“0736”、 “0877”、“1622”、“1756”,或任何以 “99”开头的四位数字。如果 输任何其它数字,则会显示错误消息。

出现此类错误消息时,您可能需要使用 sp_helptext 来查看规则定义:

sp_helptext pub_idrule

---------

1

(1 row affected) text

---------------------------------------------------


create rule pub_idrule

as @pub_id in ("1389", "0736", "0877", "1622", "1756")

or @pub_id like "99[0-9][0-9]"


(1 row affected)

有关特定规则的更多常规信息,请使用 sp_help 查明是否有任何列具有 规则,或者使用 sp_help 加上表名作为参数。请参见 第 14 章 “为数据 定义缺省值和规则 ”。


使用 NULL 字符串


只有在 create table 语句中指定了 NULL,且已显式输入了 NULL (无引 号),或未输入任何数据的情况下,列才包含空值。不要将字符串 "NULL" (带引号)当作字符列的数据入。而应使用 “N/A”、“none” 或类似值。‌

若要将 NULL 显式插入列中,请使用:

values({expression | null} [, {expression | null}]...)

以下示例显示了两个等同的 insert 语句。在第一个语句中,用户将 NULL 显式插入 t1 列中。在第二个语句中,Adaptive Server 为 t1 提供了 NULL 值,因为用户没有指定显式列值:

create table test

(t1 char(10) null, t2 char(10) not null) insert test

values (null, "stuff") insert test (t2) values ("stuff")

NULL 不是空字符串 空字符串 (“ ”或 ‘ ’)总是作为单个空格存储在变量和列数据中。以下 并置语句相当于 “abc def”,而不是 “abcdef”:

"abc" + "" + "def"

空字符串从不会求值为 NULL。


将 NULL 插入不允许 NULL 的列中

若要使用 select 将数据从某些字段为空值的表中插入不允许空值的表 中,必须为初始表中的所有 NULL 条目提供替代值。例如,为了将数据 插入不允许空值的 advances 表中,以下示例用 “0”替代 NULL 字段:

insert advances

select pub_id, isnull(advance, 0) from titles


如果不使用 isnull 函数,此命令就会将带有非空值的所有行插入 advances, 并对在 titles 的 advance 列中包含 NULL 的所有行产生错误消息。

如果无法对数据进行这种替代,则不能将包含空值的数据插入已有

NOT NULL 规定的列。


添加所有列都没有值的行

当仅给行中某些列指定值时,没有值的列可出现下列情况之一:

• 如果列或用户定义的列数据类型存在缺省值,则输入缺省值。请参 见 《参考手册:命令》中的 第 14 章 “为数据定义缺省值和规则” 或 insert。

• 如果创建表时为列指定了 NULL,并且列或数据类型不存在缺省 值,则输入 NULL。请参见 《参考手册:命令》中的 insert。

• 如果列具有 IDENTITY 属性,则输入一个唯一、连续的值。

• 如果创建表时没有为列指定 NULL 并且不存在缺省值,则 Adaptive Server 拒绝该行并显示错误消息。

表 7-4 显示了在这些情况下会看到的情况:

image

表 7-4:没有值的列

列或 数据类型存在 缺省值


列已定义为

NOT NULL


列已定义为 允许 NULL


列为

IDENTITY

image

可用 缺省值 缺省值 下一个顺序值

image

不可用 错误消息 NULL 下一个顺序值

image


使用 sp_help 来显示有关指定表、缺省值或系统表 sysobjects 中列出的任 何其它对象的报告。要查看缺省值定义,请使用 sp_helptext。


将列的值更改为 NULL

若要将列值设置为 NULL,请使用 update 语句:

set column_name = {expression | null} [, column_name = {expression | null}]...

例如,要查找所有 title_id 为 TC3218 的行,并用 NULL 替换 advance:

update titles

set advance = null

where title_id = "TC3218"


Adaptive Server 为 IDENTITY 列生成的值

在将行插入包含 IDENTITY 列的表中时, Adaptive Server 会自动生成列 值。不要在列列表中包括 IDENTITY 列的名称,也不要在值列表中包括 IDENTITY 列的值。

此 insert 语句将新行添加到 sales_daily 表。列列表不包含 IDENTITY 列

row_id:

insert sales_daily (stor_id) values ("7896")


image

注释 可以省略列名 stor_id。服务器可以识别 IDENTITY 列并使用 insert 插入下一个标识值,而无需用户输入列名。例如,下表包含三个 列,但 insert 语句为两个列指定值,而没有指定列名:

create table idtext (a int, b numeric identity, c char(1))

-------------------

(1 row affected)


insert idtext values(98,"z")

-------------------

(1 row affected

insert idtest values (99, "v"))

--------------------


(1 row affected) select * from idtest

---------------------

98

1

z

99

2

v

(2 rows affected)

image


下列语句显示了添加到 sales_daily 中的列。Adaptive Server 自动为 row_id

生成下一个顺序值, 2:

select * from sales_daily where stor_id = "7896"

sale_id stor_id

------- ------- 1 7896


(1 row affected)


将数据显式插入 IDENTITY 列

有时,可能想要将特定值插入 IDENTITY 列。例如,可能想要插入表的 第一行的 IDENTITY 值为 101,而不是 1,或者可能需要重新插入误删 除的行。

表的所有者可将值显式插入 IDENTITY 列中。如果数据库所有者和系统 管理员获得了表所有者授予的显式权限,或作为表所有者操作,他们能 将值显式插入 IDENTITY 列。

插入数据前,将表的 identity_insert 选项设置为 “on”。在会话中,一次 只能针对数据库中的一个表将 set identity_insert 设置为 “on”。

以下示例指定 IDENTITY 列的源值为 101:

set identity_insert sales_daily on

insert sales_daily (syb_identity, stor_id) values (101, "1349")

insert 语句列出了每个列,其中包含指定了值的 IDENTITY 列。当 identity_insert 选项设置为 “on”时,表的每条 insert 语句都必须指定显 式列列表。值列表必须指定 IDENTITY 列值,因为 IDENTITY 列不允许 空值。

将 identity_insert 设置为 “off”后,能自动插入 IDENTITY 列值,不必 指定 IDENTITY 列。后续插入根据在将 identity_insert 设置为 “on”后指 定的显式值,使用 IDENTITY 值。例如,如果为 IDENTITY 列指定了 101,则后续的插入应为 102、 103,等等。


image

注释 Adaptive Server 不强制插入值的唯一性。可在列的声明精度允许 的范围内指定任何正整数。为确保只接受唯一列值,可在插入任何行 前,在 IDENTITY 列上建唯一索引。

image


用 @@identity 检索 IDENTITY 列值‌

使用 @@identity 全局变量检索插入 IDENTITY 列的最后一个值。每次 insert 或 select into 尝试向表中插入一行时, @@identity 的值会更改。如 果 insert 或 select into 语句失败,或如果包含它的事务被回退,则

@@identity 不还原为其以前的值。如果语句影响没有 IDENTITY 列的 表,则将 @@identity 设置为 0。

如果语句插入多行,则 @@identity 显示最后插入 IDENTITY 列中的值。


存储过程或触发器内的 @@identity 值不影响该存储过程或触发器外的 值。例如:

select @@identity

---------------------------------------

101

create procedure reset_id as

set identity_insert sales_daily on

insert into sales_daily (syb_identity, stor_id) values (102, "1349")

select @@identity select @@identity execute reset_id

---------------------------------------

102

select @@identity

---------------------------------------

101


保留 IDENTITY 列值块

identity grab size 配置参数允许每个 Adaptive Server 进程保留一个 IDENTITY 列值块,以便插入到具有 IDENTITY 列的表中。此配置参数 减少了在插入隐式标识值时, Adaptive Server 引擎必须持有内部同步结 构的次数。例如,将保留值的数量设置为 20:

sp_configure "identity grab size", 20

当用户执行插入包含 IDENTITY 列的表的操作时, Adaptive Server 为该 用户保留一个 20 个 IDENTITY 列值的块。因此,在当前会话期间,用 户插入到表中的下一 20 行具有顺序的 IDENTITY 列值。如果在第一个 用户进行插入时,第二个用户在同一表中插入行, Adaptive Server 将为 第二个用户保留下一个包含 20 个 IDENTITY 列值的块。

例如,假定已创建下列包含 IDENTITY 列的表,并且 identity grab size 设 定为 “10”:

create table my_titles

(title_id numeric(5,0) identity, title varchar(30) not null)

用户 1 将这些行插入 my_titles 表中:

insert my_titles (title)

values ("The Trauma of the Inner Child")insert my_titles


(title)


values ("A Farewell to Angst") insert my_titles (title) values ("Life Without Anger")

Adaptive Server 允许用户 1 有一个含 10 个顺序 IDENTITY 值的块,例 如, title_id 编号 1–10。

当用户 1 将行插入 my_titles 时,用户 2 开始将行插入 my_titles。Adaptive Server 授予用户 2 保留 IDENTITY 值的下一可用块,也就是说,值 11–20。

如果用户 1 只输入三个 “title”,然后注销 Adaptive Server,那么剩余的 七个保留的 IDENTITY 值将丢失。结果是表的 IDENTITY 值中出现一个 间隔。若要避免 IDENTITY 列中出现较大间隔,请不要将 identity grab size 设置得过高。


达到 IDENTITY 列的最大值

可插入到 IDENTITY 列的最大值为

10 p recision - 1。如果不指定 IDENTITY 列的精度,Adaptive Server 将使用

numeric 列的缺省精度 (18 位)。

一旦 IDENTITY 列达到最大值, insert 语句将返回错误消息并终止当前 事务。发生这种情况时,使用下面讨论的方法之一可解决问题。


修改 IDENTITY 列的最大值

通过 alter table 命令中的修改操作更改任何 IDENTITY 列的最大值:

alter table my_titles

modify title_id, numeric (10,0)

此操作对表执行数据复制操作并重建所有表索引。


创建具有更大精度的新表


如果表包含用于参照完整性的 IDENTITY 列,则保留 IDENTITY 列值的 当前编号。

1 使用 create table 创建新表,该表除了 IDENTITY 列精度值更大外, 与旧表相同。

2 使用 insert into 将数据从旧表复制到新表中。


用 bcp 对表的 IDENTITY 列重新编号‌

如果表不包含用于参照完整性的 IDENTITY 列,并且如果在编号序列中 有间隔,则可以对 IDENTITY 列进行重新编号以消除间隔,以提供更多 的插入空间。

若要按顺序对 IDENTITY 列值重新编号并删除间隔,请执行以下操作:

1 在操作系统命令行上,使用 bcp 拷出数据:

bcp pubs2..mytitles out my_titles_file -N -c

其中,-N 指示 bcp 不将 IDENTITY 列值从表中复制到主机文件,-c

指示 bcp 使用字符模式。

2 在 Adaptive Server 中,创建一个与旧表相同的新表。

3 从操作系统命令行,使用 bcp 将数据复制进新表:

bcp pubs2..mynewtitles in my_titles_file -N -c

其中, -N 指示 bcp 当从主机文件装载数据时,让 Adaptive Server 分 配 IDENTITY 列值, -c 指示 bcp 使用字符模式。

4 在 Adaptive Server 中,删除旧表,并使用 sp_rename 将新表的名称 更改为旧表的名称。

如果 IDENTITY 列是连接的主键,可能需要更新其它表中的外键。

缺省情况下,在将数据批量复制到有 IDENTITY 列的表时, bcp 为每行 分配一个临时的 IDENTITY 列值 0。在将每行插入表时,服务器从下一 可用的值开始,为其分配一个唯一的、连续的 IDENTITY 列值。若要为 每行输显式 IDENTITY 列值,请指定 -E 标志。请参见 《实用程序指南》。


使用 select 添加新行‌

要从一个或多个其它表中将值提取到某个表中,请在 insert 语句中使用

select 子句。 select 子句能将值插入某行的某些或所有列。

如果要从现有表中提取一些值,仅为某些列插入值可能会非常方便。然 后,可以使用 update 将值添加到其它列。

在将值插入表的某些但不是全部列前,要确保存在缺省值或不插入值的 列已经指定为 NULL。否则, Adaptive Server 返回错误消息。


当从一个表向另一个表插入行时,两个表必须具有兼容的结构;也就是 说,匹配列的数据类型必须相同或者是 Adaptive Server 可在两者间自动 转换的数据类型。


image

注释 如果要插入的任何数据是空值,则不能将数据从允许空值的表插 入不允许空值的表。

image


如果列在其 create table 语句中具有相同的顺序,则不需要在两个表中指 定列名称。假定有一个名为 newauthors 的表,它包含一些作者信息行, 这些行具有与 authors 中信息相同的格式。将 newauthors 中的所有行添加 到 authors 中:

insert authors select *

from newauthors

若要根据某表中的数据将行插入另一个表,那么在各自的 create table 语 句中不必按相同的顺序列出两个表中的列。可以使用 insert 或 select 语句 排序列,以使它们相互匹配。

例如,假定用于创建 authors 表的 create table 语句包含顺序依次为 au_id、 au_fname、 au_lname 和 address 的列;而 newauthors 包含 au_id、 address、 au_lname 和 au_fname 列。列顺序必须在 insert 语句中匹配。可 以使用以下语法来实现:

insert authors (au_id, address, au_lname, au_fname) select * from newauthors

或:

insert authors

select au_id, au_fname, au_lname, address from newauthors

如果两个表中列的顺序不能匹配,则 Adaptive Server 不能完成或不能正 确完成 insert 操作,并会将数据放入错误的列。例如,可能在 au_lname 列中得到 “address”数据。


使用计算列


可以在 insert 语句内的 select 语句中使用计算列。例如,假定名为 tmp 的 表包含一些 titles 表的新行,其中包含一些过期的数据 — price 数字需要 加倍。增加价格并在 titles 中插入 tmp 行的语句如下所示:

insert titles

select title_id, title, type, pub_id, price*2,


advance, total_sales, notes, pubdate, contract from tmp

对列执行计算时,不能使用 select * 语法;每列都必须在选择列表中单 独命名。


插入数据到某些列


可以使用 select 语句将数据添加到行的某些列,但不是所有列。只需在

insert 子句中,指定数据要添加到的列。

例如, authors 表中的某些 “author”没有 “title”,因此在 titleauthor 表 中没有条目。若要将它们的 au_id 编号从 authors 表中取出来,并将其插 入 titleauthor 表中作为占位符,请尝试以下语句:

insert titleauthor (au_id) select au_id

from authors where au_id not in

(select au_id from titleauthor)

此语句是不合法的,因为 title_id 列需要一个值。不允许空值,并且没有 指定缺省值。可以通过使用一个常量为 titles_id 输入伪值 “xx1111”, 如下所示:

insert titleauthor (au_id, title_id) select au_id, "xx1111"

from authors where au_id not in

(select au_id from titleauthor)

titleauthor 表现在包含四个新行,这些新行在 au_id 列中具有条目,在

title_id 列中具有伪条目,其它两列为空值。


从相同表中插入数据


可以基于相同表中的其它数据将数据插入表中。实质上,这意味着复制 一行的全部或部分。

例如,能将新行插入 publishers 表中,该表基于同一表中已经存在行的 值。请确保遵循有关 pub_id 列的规则:

insert publishers

select "9999", "test", city, state from publishers

where pub_name = "New Age Books" (1 row affected)


select * from publishers

pub_id pub_name city state

------- --------------------- ------- ------

0736 New Age Books Boston MA 0877 Binnet & Hardley Washington DC 1389 Algodata Infosystems Berkeley CA 9999 test Boston MA


(4 rows affected)

该示例插入两个常量 (“9999”和 “test”)以及满足查询的行的 city 和

state 列的值。




--------------------------------------华丽的分割线-------------------------------------------------------------------------

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)上提取数据的非常规恢复工具
  1. 适用于所有的SQL Anywhere版本    包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x,16.x,17.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使用介绍

Sybase SQL Anywhere数据库恢复工具ReadASADB适用场景

各种误操作:

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

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的主要功能:

  1. 被勒索病毒加密数据文件及备份文件情况下的恢复;
  2. 系统崩溃只剩下数据文件的情况下的恢复,甚至数据库文件不存在而只有损坏的备份文件情况下的恢复;
  3. 因断电、硬盘坏道等造成数据库文件损坏情况下的恢复;
  4. delete数据恢复、误update数据恢复、误删除表(drop)恢复、误truncate表恢复 等;
  5. 各种Sybase内部系统表损坏、索引错误的修复;
  6. master数据库损坏而无法正常运行情况下的恢复;
  7. Sybase数据库被标记为可疑,不可用等情况的恢复;
  8. Sybase数据库中数据文件内部出现坏块情况下的恢复;
  9. Sybase数据库无数据文件但有日志文件的情况下的恢复;
  10. Sybase数据库只有数据文件无任何日志文件的情况下的恢复;
  11. Sybase数据文件被误删除情况下的碎片提取恢复;
  12. 磁盘阵列上的Sybase数据库被误格式化情况下的数据库恢复;
  13. 数据库sysobjects等系统表损坏无法正常应用情况下的恢复;
  14. Sybase数据库还原数据库出现失败情况下的恢复;
  15. 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.x


-------------------------------------------------------------------------------------------

SQL Server数据库恢复工具SQLRescue:

一个不依赖数据库管理系统、直接从SQL Server数据库文件上提取数据的业内领先的恢复工具!
能够从损坏的SQL Server数据库文件(.mdf)上提取数据的非常规恢复工具。

SQL Server数据库恢复工具SQLRescue的主要功能:

  1. 系统崩溃只剩下数据文件的情况下的恢复,即无日志文件或者日志文件损坏情况下的恢复;
  2. 断电导致数据库文件损坏情况下的恢复;
  3. 硬盘坏道造成数据库损坏情况下的恢复;
  4. 数据文件内部存在坏页情况下的恢复;
  5. 企业管理器误删除数据表记录,管理软件误删除数据表记录的恢复;
  6. 并闩锁错误、格式化、误删除后导致软件不能使用的情况;
  7. 无法读取并闩锁页sysindexes失败情况下的修复;
  8. 数据文件被误删除情况下的碎片提取恢复;
  9. 系统表损坏、索引错误、误删除数据库表、删除记录的数据找回;
  10. master数据库损坏而无法正常运行情况下的恢复;
  11. 数据文件无法附加情况下的数据恢复;
  12. 数据库被标记为可疑,质疑,不可用等情况的恢复;
  13. 数据库sysobjects等系统表损坏情况下的恢复;
  14. 数据被误(drop、delete、truncate)删除表数据的恢复,误update后的数据恢复等;
  15. 还原时报一致性错误,错误823等情况下的数据恢复,各种错误提示的数据库文件修复;
  16. 数据库被误格式化等情况下的数据库恢复;
  17. 日志收缩造成数据库损坏情况下的恢复;
  18. 仅剩损坏的备份文件情况下的恢复。

SQL Server数据库恢复工具SQLRescue技术特点:

只要SQL Server数据库的数据文件存在,我们就有办法帮您从数据文件中找回重要数据。
  1. 从数据文件中直接恢复数据
  2. 不能附加时直接恢复数据并生成新的数据库
  3. 系统表损坏的数据库修复
  4. 快速修复SQL 823错误、连接中断错误

SQL Server数据库恢复工具SQLRescue支持的版本:

Microsoft SQL Server 7.0, 2000, 2005, 2008, 2008R2, 2012, 2014, 2016, 2017,2019。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------