随着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
- 安全性管理指南
- 实用程序指南
创建表
创建表时,应为其列命名并为每个列提供数据类型。也可指定特定行能 否存在空值,或指定表中各列的完整性约束。每个数据库可有 2,000,000,000 个表
对于常规标识符,对象名或标识符的长度限制为 255 个字节,对于分隔
标识符则为 253 个字节。此限制适用于大多数用户定义的标识符,包括 表名、列名和索引名等。
对于变量,“@”计为 1 字节,名称长度可达 254 字节。
表中的最大列数取决于许多因素,包括服务器的逻辑页大小以及表是为 所有页配置的还是为仅数据锁定配置的。请参见 《参考手册:命令》。
可以使用上一节中创建的 newpubs 数据库来试验这些示例。否则,这些 更改会影响其它数据库,如 pubs2 或 pubs3。
create table 的最简单形式为:
create table table_name
(column_name datatype)
例如,要创建名为 names 且包含名为 “some_name”的列 (固定长度为
11 字节)的表,请输入:
create table names (some_name char(11)) drop table names
如果使用 set quoted_identifier on 命令,则表名和列名均可为分隔标识符。 否则,它们必须遵循 第 11 页的 “标识符”中描述的标识符规则。在同 一个表中,列名必须唯一,但同一数据库的不同表中可使用相同的列名。
每个列都必须有数据类型。上例中列名后的单词 “ char ”是指该列的数 据类型,即该列将包含的值的类型。数据类型在 第 6 章 “使用和创建 数据类型”中论述。
数据类型后面的小括号中的数字决定了可在列中存储的最大字节数。某 些数据类型的最大长度可由用户指定。而其它数据类型则使用系统定义 的长度
请用小括号将列名列表括起来,并在每个列定义后面以逗号分隔。最后 一个列定义后不需要加逗号。
注释 如果缺省值是 create table 语句的一部分,则不能在缺省值中使用 变量。
有关 create table 的完整描述,请参见 《参考手册:命令》。
create table 命令可在当前打开的数据库中建立新表。对于每个用户,表 名必须是唯一的。
创建临时表有两种途径,一种途径是在 create table 语句中的表名前加井 号 (#),另一种途径是指定表名前缀 “tempdb .. ”。有关详细信息,请参 见 第 271 页的 “使用临时表 ”。
您可使用任何由您创建且未限定名称的表或其它对象。也可使用由数据 库所有者创建且未限定名称的对象 (只要有相应的权限)。这些规则适 用于所用户,包括系统管理员和数据库所有者。
不同用户可创建相同名称的表。例如,名为 “jonah”的用户和名为 “sally”的用户可各自创建一个名为 info 的表。拥有这两个表权限的用 户必须将它们分别限定为 jonah . info 和 sally.info。 Sally 必须将对 Jonah 的 表的引用限定为 jonah.info,而对自己的表的引用只需使用 info。
可以通过用其它数据库的名称限定表名,在当前数据库以外的数据库中 创建表。但是,您必须是要创建表的数据库的授权用户,且必须具有其 中的 create table 权限。
如果正在使用 pubs2 或 pubs3,且存在另一名为 newpubs 的数据库,则可 在 newpubs 中创建一个名为 newtab 的表,方法如下:
create table newpubs..newtab (col1 int)
不能在当前数据库以外的数据库中创建其它数据库对象,如视图、规则、 缺省值、存储过程和触发器。
create table 语法
create table 语句:
• 定义表中的每一列。
• 提供列名和数据类型,指定每个列对空值的处理方式。
• 指定哪列 (如果有)有 IDENTITY 属性。
• 定义列级完整性约束和表级完整性约束。每个表定义的每一列和每 个表可有多个约束。
例如, pubs2 数据库中 titles 表的 create table 语句为:
create table titles (title_id tid,
title varchar(80) not null, type char(12),
pub_id char(4) null, price money null, advance money null, royalty int null, total_sales int null, notes varchar(200) null, pubdate datetime, contract bit not null)
请参见 《参考手册:命令》。
以下几节介绍表定义的组成部分:系统提供的数据类型、用户定义的数 据类型、空类型和 IDENTITY 列。
注释 对 create table 的 on segment_name 扩展允许将表放到现有段上。 segment_name 指向一个特定的数据库设备或一组数据库设备。在段上 创建表之前,请向系统管理员或数据库所有者索取您可以使用的段列 表。由于性能原因或其它方面的考虑,某些段可能会被分配给特定的表 或索引。
IDENTITY 列包含对应每一行的一个值,由 Adaptive Server 自动生成, 在表内唯一地标识该行。
每个表只能有一个 IDENTITY 列。可在创建表时用 create table 或 select into 语句定义 IDENTITY 列,或在以后用 alter table 语句添加。
通过在 create table 语句中指定关键字 identity 而不是 null 或 not null 来定义 IDENTITY 列。 IDENTITY 列的数据类型必须为 numeric 且标度为零, 或者为任何整数类型。请在新表中将 IDENTITY 列定义为任何所需精度
(1 到 38 位):
create table table_name
(column_name numeric(precision ,0) identity)
可能的最大列值为 10 精度 - 1。例如,以下命令创建一个表,其 IDENTITY 列允许的最大值为 105 - 1 (即 9999):
create table sales_daily
(sale_id numeric(5,0) identity, stor_id char(4) not null)
IDENTITY 列达到最大值后,以后的所有 insert 语句都将返回错误并终 止当前事务。
可以使用 auto identity 数据库选项和 size of auto identity 配置参数来创建自 动 IDENTITY 列。要在非唯一性索引中包括 IDENTITY 列,应使用 identity in nonunique index 数据库选项。
注释 缺省情况下, Adaptive Server 以值 1 开始编写行号,并随着行的 增加而连续编写行号。某些活动 (如手工插入、删除或事务回退、服 务器关机或故障)会使 IDENTITY 列的值形成间隔。 Adaptive Server 提 供了几种控制标识间隔的方法,详见 第 274 页的 “管理表中的标识间 隔”中的介绍。
创建用户定义数据类型的 IDENTITY 列
可以使用用户定义的数据类型创建 IDENTITY 列。用户定义的数据类型 的基础类型必须为 numeric 且标度为零,或者为任何整数类型。如果使 用 IDENTITY 属性来创建用户定义的数据类型,则在创建该列时不必重 复 identity 关键字。
下例显示一个有 IDENTITY 属性的用户定义数据类型:
sp_addtype ident, "numeric(5)", "identity"
此示例显示基于 ident 数据类型的 IDENTITY 列:
create table sales_monthly
(sale_id ident, stor_id char(4) not null)
如果用户定义的类型创建为 not null,则必须在 create table 语句中指定
identity 关键字。不能从允许空值的用户定义数据类型创建 IDENTITY 列。
引用 IDENTITY 列
创建引用 IDENTITY 列的表列时,应确保任何被引用列与 IDENTITY 列 具有相同的数据类型定义。例如,在 pubs3 数据库中, sales 表被定义为 以 ord_num 列作为 IDENTITY 列:
create table sales (stor_id char(4) not null
references stores(stor_id), ord_num numeric(6,0) identity, date datetime not null,
unique nonclustered (ord_num))
ord_num IDENTITY 列被定义为唯一约束,它需要使用该约束来引用
salesdetail 中的 ord_num 列。 salesdetail 定义如下:
create table salesdetail (stor_id char(4) not null
references storesz(stor_id), ord_num numeric(6,0)
references salesz(ord_num), title_id tid not null
references titles(title_id), qty smallint not null,
discount float not null)
begin tran
向 sales 中插入一行后,要向 salesdetail 中插入一行,一个简单的方法是 使用 @@identity 全局变量,将 IDENTITY 列值插入 salesdetail。
@@identity 全局变量存储最近生成的 IDENTITY 列值。例如:
insert sales values ("6380", "04/25/97")
insert salesdetail values ("6380", @@identity, "TC3218", 50, 50) commit tran
此示例属于一个事务,因为这两次插入操作互相依赖、互为基础。例如, 如果 sales 插入失败,则 @@identity 的值不相同,从而向 salesdetail 中插 入错误的行。因为这两次插入同属于一个事务,因此如果一个失败,整 个事务都会被拒绝。
请参见 第 223 页的 “用 @@identity 检索 IDENTITY 列值”。有关事务 的信息,请参见 第 23 章 “事务:维护数据一致性和恢复”。
使用 syb_identity 引用 IDENTITY 列
定义了 IDENTITY 列后,就无需记住实际的列名。必要时,可在对表的 select、 insert、 update 或 delete 语句中使用由表名限定的 syb_identity 关 键字。
例如,本查询选择 sale_id 等于 1 的行:
select * from sales_monthly where syb_identity = 1
自动创建 “隐藏的” IDENTITY 列
系统管理员可使用 auto identity 数据库选项自动将 10 位的 IDENTITY 列 包含在新表中。要在数据库中打开此功能,可使用:
sp_dboption database_name, "auto identity", "true"
用户每次创建新表而未指定主键、唯一约束或 IDENTITY 列时, Adaptive Server 都会自动定义一个 IDENTITY 列。使用 select * 检索表中 的所有列时, IDENTITY 列是不可见的。必须在选择列表中显式地包含 列名 SYB_IDENTITY_COL (全部为大写字母)。如果启用了 “组件集成 服务”,则代理表的自动 IDENTITY 列称为 OMNI_IDENTITY_COL。
若要设置自动 IDENTITY 列的精度,可使用 size of auto identity 配置参数。 例如,若要将 IDENTITY 列的精度设置为 15,请使用:
sp_configure "size of auto identity", 15
如果在 create table 语句中省略 null 或 not null,则 Adaptive Server 使用为 该数据库定义的空值模式 (缺省情况下为 NOT NULL)。使用 sp_dboption 将 allow nulls by default 选项设置为 true。
必须在定义为 NOT NULL 的列中输入条目;否则,Adaptive Server 会显 示一条错误消息。请参见 第 62 页的 ““未知”值: NULL ”。
将列定义为 NULL,会为未知数据提供一个占位符。例如,在 titles 表 中, price、 advance、 royalty 和 total_sales 均设置为允许 NULL。
但 title_id 和 title 不能这样设置,因为这些列中如果缺少条目则是无意义 的,会引起混乱。没有标题的价格毫无意义,但没有价格的标题则只意 味着价格尚未确定,或此价格不可用。
当列中的信息对于其它列的意义至关重要时,应在 create table 中使用
not null。
不能定义一个允许空值的列,接着又用禁止空值的约束或规则覆盖此定 义。例如,如果一个列定义指定 NULL,规则指定:
@val in (1,2,3)
暗指的或明示的 NULL 与规则不发生冲突。此列定义覆盖此规则,即使 规则指定:
@val is not null
有关约束的详细信息,请参见 第 279 页的 “为表定义完整性约束”。 规则在 第 14 章 “为数据定义缺省值和规则”中详细介绍。
缺省值和空值
对 NULL 和 NOT NULL 列均可使用缺省值 (即当不输入条目时,系统 自动提供的值)。缺省值与输入条目的处理方式相同。但是,不能为 NOT NULL 列指定 NULL 缺省值。可使用 create table 的 default 约束或使 用 create default 将空值指定为缺省值。 default 约束将在本章的后面部分 介绍;create default 详见 第 14 章 “为数据定义缺省值和规则 ”。
如果在创建列时指定 NOT NULL,且没有为其创建缺省值,则当用户未 能在插入操作期间在该列中输入值时,系统会给出一条错误消息。此外, 用户不能以 NULL 为值的列进行 insert 或 update 操作。
表 8-1 说明当用户未指定列值或明确输入一个 NULL 值时,列的缺省值 及其空值类型之间的交互作用。三个可能结果是空值、缺省值或一条错 误消息。
表 8-1:列定义和空缺省值
列定义 用户输入 结果
已定义空和缺省值 不输入值
输入 NULL 值
已定义 Null,未定义缺省值 不输入值
输入 NULL 值
非空,已定义缺省值 不输入值
输入 NULL 值
非空,未定义缺省值 不输入值
输入 NULL 值
使用缺省值 使用 NULL 使用 NULL 使用 NULL 使用缺省值 使用 NULL 错误
错误
Null 需要可变长度数据类型
只有具有可变长度数据类型的列才能存储空值。用固定长度的数据类型 创建 NULL 列时, Adaptive Server 会将其转换为相应的可变长度数据类 型。关于类型更改, Adaptive Server 不作通知。
表 8-2 列出固定长度数据类型及 Adaptive Server 将它们转换到的可变长 度数据类型。某些可变长度的数据类型 (如 moneyn)是保留的数据类 型;不能使用它们来创建列、变量或参数。
表 8-2:固定长度数据类型向可变长度数据类型的转换
原始的固定长度数据类型 转换为
char varchar
nchar nvarchar
unichar univarchar
binary varbinary
datetime datetimn
float floatn
bigint、 int、 smallint、 tinyint intn unsigned bigint、 unsigned int 和 unsigned smallint uintn decimal decimaln
numeric numericn
money 和 smallmoney moneyn
在 char、 nchar、 unichar 和 binary 列中输入的数据遵循可变长度列的规 则,而不是用空格或零填补至列规范的完整长度。
text 、 unitext 和 image 列
使用 insert 和 NULL 创建的 text、 unitext 和 image 列未初始化,它们不包 含任何值。它们不占用存储空间,不能用 readtext 或 writetext 访问。
使用 update 将 NULL 值写入 text、unitext 或 image 列时,将初始化该列, 将一个指向该列的有效文本指针插入表中,并为该列分配一个 2K 的数 据页。列初始化后,即可用 readtext 和 writetext 命令进行访问。请参见
《参考手册:命令》。
临时表创建于 tempdb 数据库中。若要创建临时表,必须对 tempdb 有
create table 权限。 create table 权限缺省授予数据库所有者。
• 可在 Adaptive Server 会话之间共享的表
通过将 tempdb 指定为 create table 语句中表名的一部分,可以创建可 共享临时表。例如,下列语句创建可在 Adaptive Server 会话之间共 享的临时表:
create table tempdb..authors (au_id char(11))
drop table tempdb..authors
Adaptive Server 不更改以此方式创建的临时表名。该表会一直存 在,直至当前会话结束或者表的所有者使用 drop table 将其删除。
• 只能由当前 Adaptive Server 会话或过程访问的表
通过在 create table 语句中的表名前面指定井号 (#),可以创建非共享 临时表。例如:
create table #authors (au_id char (11))
该表会一直存在,直至当前会话或过程结束,或者其所有者用 drop table 将其删除。
如果不在表名前使用井号或 “tempdb ..”,且当前未使用 tempdb,则表 被创建为永久表。永久表会一直保留在数据库中,直至被其所有者显式 删除。
此语句创建非共享临时表:
create table #myjobs (task char(30), start datetime, stop datetime, notes varchar(200))
可用此表保留今日杂事和任务的一个列表、开始和结束时间的记录、以 及可能的任何注释。在当前工作会话结束时,将自动删除此表及其数据。 临时不可恢复。
可将规则、缺省值和索引与临时表建立关联,但不能在临时表上创建视 图,或将触发器与之建立关联。创建临时表时,只有在用户定义的数据 类型存于 tempdb..systypes 中时,才可使用该数据类型。
要仅为当前会话向 tempdb 添加对象,则应在使用 tempdb 时执行 sp_addtype。若要永久性地添加对象,请在 model 中执行 sp_addtype, 然后重新启动 Adaptive Server,以将 model 复制到 tempdb 中。
为确保临时表名对于当前会话是唯一的, Adaptive Server:
• 必要时,将表名截断为 238 个字节,包括井号 (#)
• 附加一个 17 位的数字后缀,它对于 Adaptive Server 会话来说是唯 一的
以下示例显示一个创建为 #temptable 并存储为 #temptable00000050010721973
的表:
use pubs2 go
create table #temptable (task char(30)) go
use tempdb go
select name from sysobjects where name like "#temptable%"
go
name
------------------------------
#temptable00000050010721973 (1 row affected)
存储过程可引用在当前会话期间创建的临时表。
名称以 “ #”开头的临时表
退出存储过程时,在该存储过程中创建的带有以 “#”开头的名称的临 时表将会消失。单个过程能够:
• 创建临时表
• 将数据插入表中
• 在表上运行查询
• 调用引用该表的其它过程 因为要创建引用临时表的过程,临时表必须存在,所以要遵循以下步骤:
1 使用 create table 创建临时表。
2 创建访问临时表的过程,但不创建生成该表的过程。
3 删除临时表。
4 创建一个过程,该过程创建表并调用在第 2 步中创建的过程。
名称以 tempdb ..
临时表的一般规则
开头的临时表从存储过程内部,可使用 create table tempdb..tablename 创 建不带 # 前缀的临时表。过程完成后这些表不消失,所以它们可被独立 过程引用。可按以上步骤创建这些表。
警告!仅当要在用户和会话间共享表时,才应使用 “tempdb..”前缀从 存储过程内创建临时表。创建和删除临时表的存储过程应使用 “#”前 缀来避免无意的共。
名称以 # 开头的临时表应遵循如下限制:
• 不能在这些表上创建视图。
• 不能将触发器与这些表建立关联。
• 从存储过程内,不能:
a 创建临时表
b 将其删除
c 创建新的同名临时表。
• 无法判断出是哪个会话或过程创建了这些表。 这些限制不适用于在 tempdb 中创建的可共享的临时表。 应用于这两类临时表的规则如下:
• 可将规则、缺省值和索引与临时表建立关联。当临时表消失时,在 临时表上创建的索引随之消失。
• 系统过程 (如 sp_help)可使用临时表,但条件是必须从 tempdb 调 用它们。
• 在临时表中不能使用用户定义的数据类型,除非该数据类型存在于 tempdb 中;即,除非自上次 Adaptive Server 重新启动以后,该数据 类型已显式创建于 tempdb 中。
• 要对临时表执行 select into 操作,不必将 select into/bulkcopy 选项设置 为 on。
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。+-------------------------------------华丽的分割线-------------------------------------------------------------------------