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

 


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

ddlgen

说明 这是一个基于 Java 的工具,可生成 Adaptive Server 中服务器级和数据库 级对象的定义。

若要为以下对象生成 DDL,用户必须具有 sa_role sso_role

加密密钥

登录名

角色 对于所有其它对象,用户无需任何特定权限或角色即可生成 DDL

ddlgen 的命令行版本位于 ASE-15_0/bin (对于 UNIX)和 ASE-15_0\bin

(对于 Windows)中。

语法 ddlgen

-Ulogin

-Ppassword

-S[[ssl:]server | host_name :port_number] [-I interfaces_file]

[-Tobject_type]

[-Nobject_name] [-Ddbname]

[-Xextended_object_type] [-Ooutput_file]

[-Eerror_file]

[-Lprogress_log_file] [-Jclient_charset]

[-LC -N logical_cluster_name

-F[ % | SGM | GRP | USR | R | D | UDD | U | V | P | XP | I | RI | KC | TR | PC]

ddlgen -v

参数 -U login

指定一个区分大小写的登录名。

-P password

指定口令。

如果未在 ddlgen 语句中包含 -P 参数, ddlgen 会提示用户指定口令。

有关如何隐藏口令的说明,请参见 173 页的 “隐藏 ddlgen 中的口 令


-S [[ssl:]server | host_name :port_number]

指定 Adaptive Server 的名称。ddlgen interfaces 文件或 LDAP 配置文 件中查找该名称。如果指定:

[ssl:] – 将允许为启用 SSL 的服务器中的对象生成 DDL。该参数 是可选的。

-S [host_name:port_number] ddlgen 将使用所提供的 host_name

port_number,不读取或解析 interfaces 文件和 LDAP 配置文件。

-S[server] -I ddlgen 将对在用户位置指定的 interfaces 文件进行解 析,以查找服务器名 (有关详细信息,请参见 -I 参数说明)。

-S[server] – 由于没有指定 interfaces 文件, ddlgen 将执行以下操 作:

a ddlgen 先尝试从标准位置读取 LDAP 配置文件

b 如果 LDAP 文件不存在,或者虽然存在但不包含 Adaptive Server 条目,那么将对位于标准位置的 interfaces 文件进行解 析,以查找服务器名

c 如果 LDAP 文件存在,则 ddlgen 将使用该文件搜索服务器 名。此时不解析 interfaces 文件,而是解析该 LDAP 配置文 件。


image

注释 必须使用 -S 选项,因为 ddlgen 不连接到缺省服务器。

image


-I

指定 interfaces 文件名,与 UNIX 中的 $SYBASE/interfaces Windows

中的 %SYBASE%\ini\sql.ini 相对应。此可选参数与 -S 一起使用。

-Tobject_type

指定正在创建的对象类型。如果没有使用 -Tddlgen 将为登录的缺省 数据库生成 DDL-T 的对象类型为:

image

对象类型 说明

C 高速缓存

D 缺省值

DB 数据库

DBD 数据库设备

DPD 转储设备

EC 执行类

EG 引擎组

EK 加密密钥


image

对象类型 说明

GRP

I 索引

KC 键约束

L 登录名

LK 逻辑键

P 存储过程

R 规则

RI 参照完整性

RO 角色

RS 远程服务器

SGM

TR 触发器

U

UDD 用户定义的数据类型

USR 用户

V 视图

WS 用户定义的 Web 服务

WSC Web 服务消耗程序

XOD 本地高速缓存

XOU 全局高速缓存

XP 扩展存储过程


-Nobject_name

指定要创建的对象的完全限定名,例如

-Ndb_name.owner_name.table_name.object_name -N 选项:

当在 -T 参数中指定任意 object_type 而不是 DB (数据库)时是必 需的。

接受使用 % 作为通配符。

若要为表的某一触发器生成 DDL,请使用

-Ndb_name.table_owner.table_name.trigger_name 格式。

若要为表的所有触发器生成 DDL,请将 trigger_name 替换为 %, 因而将使用 -N db_name . table_owner . table_name .% 格式。

使用 -N db_name.owner.key_name 为加密密钥生成 DDL

为服务器上某一特定对象类型的所有项生成 DDL

-Ndb_name.owner_name.table_name.object_name 格式强制实施它 分析名称的严格顺序。如果您仅提供三个参数,则 ddlgen 假定它 们的顺序依次是 owner_nametable_name object_name。或者, 也可以使用 -Nowner_name.table_name -Ddb_name。如果 object_name 是一个索引 ( I ) ddlgen 并不强加这一限制。

-Ddbname

指定在 -N 选项中所指定对象的数据库名。缺省情况下是用户的缺省 数据库。

为表的所有触发器生成 DDL 时,不能使用 -D 参数。


-Xextended_object_type

区分以下情况:

当将表指定为对象类型 (-TU) 时,将用户表 (OU) 与代理表 (OD) 区 分开。

当将数据库指定为对象类型 (-TDB) 时,将临时数据库 (OD) 与常 规数据库 (OU) 或存档数据库 (OA) 区分开

当指定过程作为对象类型 (-TP) 时,将 SQLJ 过程 (OD) 和存储过 程 (OU) 区分开。

如果 object_type ( -T ) U (表)并且没有指定 -Xddlgen 会同时为用 户表和代理表生成 DDL。若仅为以下内容生成 DDL

用户表 – 使用带有 -X 选项的 OU 扩展对象类型。

代理表 – 对 -X 选项使用 OD 扩展对象类型。

内存数据库、高速缓存和设备 – 对 -X 选项使用 OI 扩展对象类 型。

image

image

内存临时数据库 – 对 -X 选项使用 OIT 扩展对象类型。 注释 ddlgen 不支持为系统表生成模式。

-Ooutput_file

为生成的 DDL 指定一个输出文件。如果没有指定 -O,则所创建的

DDL 会显示在主控台窗口中。

-Eerror_file

指定一个用来记录错误的日志文件。如果没有指定 -E,生成的错误会 显示在主控台窗口中。

-Lprogress_log_file

指定用于记录 ddlgen 的进度的日志文件。如果您没有指定 -L,将不记 录进度。

-Jclient_charset

指定用于客户端的字符集。-J client_charset 请求将 Adaptive Server 字符 集与客户端上使用的字符集 client_charset 进行相互转换。过滤器在 client_charset Adaptive Server 字符集之间转换输入内容。

如果省略 -J,则将字符集设置为平台的缺省字符集。缺省字符集不必 是客户端正在使用的字符集。


image

注释 对于 HP 平台 – 必须使用 -Jiso_1 指定正确的字符集。

image


-LC

为服务器上的一个或多个逻辑集群生成 DDL

-F

在表级和数据库级对象的 DDL 中将索引、触发器和约束从表和数据 库定义中过滤出去。有效的过滤器是:

对于表 [ % | I | RI | KC | TR | PC ]

对于数据库 [ % | SGM | GRP | USR | R | D | UDD | U | V | P | XP | I | RI | KC | TR]

过滤器选项有:

image

选项 过滤出

% 所有内容。检索数据库或表的纯模式定义。

SGM

GRP

USR 用户

R 规则

D 缺省值

UDD 用户定义的数据类型

U 用户表

V 视图

P 存储过程

PC 分区条件

XP 扩展存储过程

I 索引

RI 参照完整性约束

KC 主键约束和唯一键约束

TR 触发器


如果您使用无效过滤器参数, ddlgen 将生成一个警告,忽略该参数, 并继续处理您指定的其余有效参数。

如果您指定 % 以及其它过滤器参数,ddlgen 将忽略所有其它可过滤参 数,只显示纯模式定义。 ddlgen 然后继续评估应用于数据库的可过滤 参数的子集内的依赖性。

-v

显示 ddlgen 的版本和版权消息,然后返回到操作系统。


示例 示例 1 (高速缓存)为名为 HARBOR 的计算机 (使用端口 1955)上称 作 default data cache 的高速缓存生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TC -N"default data cache"

为所有高速缓存生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TC -N%

示例 2 (缺省值)为名为 HARBOR 的计算机 (使用端口 1955)上

pubs2 数据库中 jones 所拥有的 “phondflt”缺省值生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TD -Njones.phonedflt -Dpubs2

或者,由于 ddlgen 允许在 -N 标志中使用全限定名,因此可以忽略

-Ddbname 而在 -N 选项中包括数据库名:

ddlgen -Ulogin -Ppassword -Sserver:port -TD -Ndbname.owner.defaultname

为数据库中 “owner”所拥有的所有缺省值生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TD -Nowner.% -Ddbname

示例 3 (数据库)为名为 HARBOR 的计算机 (使用端口 1955)上的

pubs2 数据库生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDB -Npubs2

如果没有指定 dbnameddlgen 将为 login 的缺省数据库生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port

如果没有使用 -T 参数, ddlgen 将为缺省类型数据库生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -Ndbname

为所有数据库生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TDB -N%

示例 4 (数据库设备)为名为 HARBOR 的计算机 (使用端口 1955)上 运行的 master 数据库设备生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDBD -Nmaster

为所有数据库设备生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TDBD -N%

示例 5 (临时数据库)为包括 tempdb 在内的所有数据库生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TDB -N%

若要为所有临时数据库生成 DDL,请使用 OD 扩展数据库类型:

ddlgen -Ulogin -Ppassword -Sserver:port -TDB -XOD -N%


可以在 Adaptive Server 版本 12.5.0.3 和更高版本中使用 OD 扩展类型,但 在早于 12.5.0.3 的版本中使用将发出警告消息。您可以放心地忽略这一 消息;ddlgen 将继续处理该命令。

若要为临时数据库之外的所有数据库生成 DDL,请使用 OU 扩展类型:

ddlgen -Ulogin -Ppassword -Sserver:port -TDB -XOU -N%

下面的命令将为名为 tempdb1 的临时数据库生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TDB -Ntempdb1

输出中包含以下内容:

create temporary database 语句

create temporary database tempdb1 on master = 4, asdas = 2

go

sp_tempdb bind 语句,其中 isql 应用程序被绑定到 tempdb1

sp_tempdb 'bind','ap', 'isql', 'DB', 'tempdb1' go


image

注释 视图、存储过程和表之类对象的 DDL 不与临时数据库的 DDL 一 起生成,因为这些对象是临时对象,并且在服务器重新启动后重新创 建。

为数据库对象生成 DDL 时,如果使用 -F 参数过滤表,则会自动过滤索 引、参照完整性、键约束和触发器,因为它们都是该表对象的子集。

image


示例 6 (内存数据库)为内存数据库生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDB -Nimdb_1

示例 7为内存临时数据库生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDB -Nimdb_temp1

示例 8 (存档数据库)若要为所有存档数据库生成 DDL,请使用扩展过 滤器选项 “OA”。

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDB -N% -XOA

若要为单个存档数据库生成 DDL,请使用常规数据库的语法。本示例 为存档数据库 adb1 创建 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDB -Nadb1


示例 9 (转储设备)为名为 HARBOR 的计算机 (使用端口 1955)上运 行的 tapedump1 转储设备生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDPD -Ntapedump1

为所有转储设备生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TDPD -N%

示例 10 (加密密钥)在包含扩展选项 –XOD 时,为加密密钥生成系统 加密口令和 DDL。输出会为所有加密密钥生成 sp_encryption 语句,然后 再生成 DDL 语句。此示例为名为 HARBOR 的计算机(使用端口 1955) 中的登录名 “george”生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TEK -Ngeorge -XOD

为名为 HARBOR 的计算机 (使用端口 1955)上 authors 数据库中的所 有加密密钥生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TEK -Nauthors.dbo.%

示例 11为名为 “HARBOR”的计算机 (使用端口 1955)上 accounts 数 据库中的所有加密密钥生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TEK

-Naccounts.dbo.%

或者,使用 -D 选项指定数据库名。

示例 12SampleKeysDB 数据库中的加密密钥 “ssn_key”生成 DDL

ddlgen -Usa -P -Sserver -TEK -NSampleKeysDB.dbo.ssn_key

示例 13以下示例在为 “ssn_key”加密密钥生成 DDL 时,使用 -FEKC 来 避免为密钥副本创建 DDL

ddlgen -Usa -P -Sserver -TEK -NSampleKeysDB.dbo.ssn_key

-FEKC

示例 14为 “ssn_key”及其密钥副本生成 DDL

ddlgen -Usa -P -Sserver -TEK -NSampleKeysDB.dbo.ssn_key

示例 15此示例对名为 employee 的表发出 ddlgen 命令,该表包含一个 “ssn”列,该列使用加密密钥 “ssn_key”进行加密,其解密缺省值设 置为 “100”:

ddlgen -Usa -P -Sserver -TU -N db1.dbo.employee

示例 16 (引擎组)为名为 HARBOR 的计算机 (使用端口 1955)上运 行的 LASTONLINE 引擎组生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TEG -NLASTONLINE


为所有引擎组生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TEG -N%

示例 17 (执行类)为名为 HARBOR 的计算机 (使用端口 1955)上运 行的 EC2 执行类生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TEC -NEC2

为所有执行类生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TEC -N%

示例 18 (扩展存储过程)通过在 -N 选项中使用完全限定的

dbname.owner.extendedstoredprocedure 格式,为名为 HARBOR 的计算机

(使用端口 1955)上运行的、 Jones 所拥有的 pubs2 数据库中的

xp_cmdshell 扩展存储过程生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TXP -Npubs2.jones.xp_cmdshell

或者,可以使用 -D 选项来代替使用全限定名:

ddlgen -Ulogin -Ppassword -Sserver:port -TXP

-Nowner.extendedstoredprocedure -Ddbname

为所有扩展存储过程生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TXP -Ndbname.owner.%

示例 19 (过滤器)为 pubs2 数据库中的 authors 表生成 DDL,从表的 DDL 中过滤出所有索引 (I)、参照完整性约束 (RI)、主键约束和唯一键约 束 (KC)、触发器 (TR) 和分区条件 (PC)

ddlgen -Uroy -Proy123 -TU -Nauthors -Dpubs2 -F%

或者,可以分别指定每个过滤器:

ddlgen -Ulogin -Ppassword -TU -Ndbname.owner.table

-FI,RI,KC,TR

下面的命令生成 table_name 的定义,同时过滤出外键和唯一主键:

ddlgen -Ulogin -Ppassword -TU -Ntable_name -Ddbname

-FRI,KC

下面两个命令都会在整个数据库中为指定用户生成外键:

ddlgen -Ulogin -Ppassword -TRI -N%.%.% -Ddbname

或:

ddlgen -Ulogin -Ppassword -TRI -Ndbname%.%.%


下面两个命令为数据库中所有以 “PK”开头的表的主键和唯一键生成

DDL

ddlgen -Ulogin -Ppassword -TKC -Ndbname.%.%.PK%

或:

ddlgen -Ulogin -Ppassword -TKC -N%.%.PK% -Ddbname

下面的命令生成数据库的纯模式定义:

ddlgen -Ulogin -Ppassword -Sserver:port -TF -Ndbname

-F%

或者,可以分别指定每个过滤器:

ddlgen -Ulogin -Ppassword -Sserver:port -TDB -Ndbname

-FSGM,GRP,USR,R,D,UDD,V,P,XP,I,RI,KC,TR

下面的命令在生成数据库 DDL 时跳过已编译对象:

ddlgen -Ulogin -Ppassword -Sserver:port -TDB -Ndbname

-FTR,D,XP,V,R

下面的命令生成数据库定义,但不生成表定义:

ddlgen -Ulogin -Ppassword -Sserver:port -TDB -Ndbname

-FU

示例 20 (组)通过在 -N 选项中使用完全限定的 dbname . groupname 格 式,为名为 HARBOR 的计算机 (使用端口 1955)上运行的 pubs2 数据 库中的 “public”组生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TGRP -Npubs2.public

或者,可以使用 -D 选项来指定 dbname

ddlgen -Ulogin -Ppassword -Sserver:port -TGRP -Ngroupname -Ddbname

为所有组生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TGRP -Ndbname.%

示例 21 (索引)为 pubs2 数据库中 dbo 所拥有的 authors 表的 au_lname

索引生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TI -Ndbo.authors.au_lname -Dpubs2

或者,由于 ddlgen 允许在 -N 标志中使用全限定名,因此可以忽略

-Ddbname 而在 -N 选项中包括数据库名:

ddlgen -Ulogin -Ppassword -Sserver:port

-TI -Ndbname.owner.tablename.indexname

如果使用一个全限定名,就可以忽略 -D 选项。


为单个表的所有索引生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TI

-Ndbname.owner.tablename.%

为数据库中所有表的所有索引生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TI

-Ndbname.%.%.%

例如,以下命令将为 pubs2 数据库中所有表的所有索引生成 DDL

ddlgen -Usa -P -SHARBOR:1955 -TI -Npubs2.%.%.%

示例 22 (键)以下两条命令为数据库中所有以 “PK”开头的表的主键 和唯一键生成 DDL

ddlgen -Usa -P -TKC -Ndbname.%.%.PK%

或:

ddlgen -Usa -P -TKC -N%.%.PK% -Ddbname

示例 23 (逻辑键) LK 生成由 sp_primarykeysp_commonkeysp_foreignkey 语句定义的表的逻辑键。由于这些键没有名称,在此情况 下对象的名称将作为表名称。此示例为名为 HARBOR 的计算机 (使用 端口 1955)上运行的 pubs2 数据库中的表作者的逻辑键生成 DLL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TLK -Npubs2.dbo.authors

若要为数据库 pub2 中的所有逻辑键生成 DDL,请使用:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TLK -Npubs2.%.%

若要从表作者的 DLL 中过滤出在 -F 参数中使用 LK 的逻辑键定义,请 使用:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TLK -Npubs2.dbo.authors -FLK

示例 24 (登录名) TL 为一个登录名或所有登录名生成 DDL。本例为名 为 HARBOR 的计算机 (使用端口 1955)中的所有登录名生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TL -N%

image

image

注释 为所有登录名生成的 DDL 中的口令为 “password”。 或者,也可以使用 -N username 代替 -N% 来指定单个登录名:

ddlgen -Ulogin -Ppassword -Sserver:port -TL -Nusername


如果已经为登录名指定了服务器范围的口令复杂程度选项,则会首先生 成所有 sp_addlogin sp_loglogin DDL 语句,然后再生成用于口令选项的 DDL 语句。此示例为名为 HARBOR 的计算机 (使用端口 1955)中的 登录名 “george”生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TL -Ngeorge

示例 25 (远程服务器)为名为 HARBOR 的计算机 (使用端口 1955) 上的 ORANGE 远程服务器生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TRS -NORANGE

为所有远程服务器生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TRS -N%

示例 26 (角色)为名为 HARBOR 的计算机 (使用端口 1955)上的 sa_role 生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TRO -Nsa_role

为所有角色生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TRO -N%


image

注释 为所有角色生成的 DDL 中的口令为 “password”。

image


示例 27 (规则)为名为 HARBOR 的计算机 (使用端口 1955)上与

authors 相关联的所有规则生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TR -Nauthors.dbo.%

% 符号指示 ddlgen 为服务器上存在的所有规则都创建 DDL。 您还可以给出规则的全限定名:

ddlgen -Ulogin -Ppassword -Sserver:port -TR -Ndbname.owner.rulename

或者,也可以使用 -D 参数:

ddlgen -Ulogin -Ppassword -Sserver:port -TR -Nowner.rulename -Ddbname

示例 28 (段)通过在 -N 选项中使用完全限定的 dbname . segmentname 格 式,为名为 HARBOR 的计算机 (使用端口 1955)上 pubs2 数据库的 logsegment 段生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TSGM -Npubs2.logsegment

或者,可以使用 -D 选项指定 dbname

ddlgen -Ulogin -Ppassword -Sserver:port -TSGM -Nsegmentname -Ddbname


为所有段生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TSGM -Ndbname.%

示例 29SQLJ 函数)为 master 数据库中 dbo 所拥有的 region_of SQLJ

函数生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TF Nmaster.dbo.region_of

或者,也可以使用 -D 参数:

ddlgen -Ulogin -Ppassword -Sserver:port -TF Ndbo.region_of Dmaster

若要为数据库中的所有 SQLJ 函数生成 DDL,可使用对象类型 F

ddlgen -Ulogin -Ppassword -Sserver:port -TF Ndbname.owner.%

示例 30 SQLJ 过程)是一种存储过程。在为 SQL 过程生成 DDL 的同 时将为存储过程生成 DDL。下面的命令将为 master 数据库中 dbo 所拥有 的所有存储过程 (包括 SQLJ 过程)生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TP Nmaster.dbo.%

要为 master 数据库中仅由 dbo 所拥有的所有 SQLJ 过程生成 DDL,请使 用下面的命令,其中扩展类型 OD 指的是 SQLJ 过程:

ddlgen -Ulogin -Ppassword-Sserver:port -TP Nmaster.dbo.% -XOD

要为 master 数据库中 dbo 所拥有的除 SQLJ 过程之外的所有过程生成 DDL,请使用下面的命令,其中扩展类型 OU 指的是除 SQLJ 过程外的 所有存储过程:

ddlgen -Ulogin -Ppassword-Sserver:port -TP Nmaster.dbo.% -XOU

示例 31 (存储过程)通过对 -N 选项使用完全限定的 dbname . owner . procedure_name 格式,为名为 HARBOR 的计算机 (使用 端口 1955)上 pubs2 数据库的 sp_monitor 存储过程生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TP -Npubs2.dbo.sp_monitor

或者,可以使用 -D 选项指定 dbname

ddlgen -Ulogin -Ppassword -Sserver:port -TP -Nowner.procedurename -Ddbname

为所有存储过程生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TP -Ndbname.owner.%

示例 32 (启用 SSL 的服务器)为名为 HARBOR 的计算机 (使用端口 1955)上运行的、启用 SSL Adaptive Server pubs2 数据库中的对象 生成 DDL

ddlgen -Uroy -Proy123 -Sssl:HARBOR:1955 -TDB -Npubs2


示例 33 (表)为名为 HARBOR 的计算机 (使用端口 1955)上运行的、 “dbo”所拥有的 pubs2 数据库中的所有用户表生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TU -Ndbo.% -Dpubs2

您也可以使用 -N 参数给出表的全限定名:

ddlgen -Ulogin -Ppassword -Sserver:port -TU

-Ndbname.tableowner.tablename

或者,也可以使用 -D 参数指定数据库:

ddlgen -Ulogin -Ppassword -Sserver:port -TU

-Ntableowner.tablename -Ddbname

若要为所有代理表生成 DDL (使用值 OD),请改用 -XOD,其中 X 是扩 展类型, OD 表示代理表:

ddlgen -Ulogin -Ppassword -Sserver:port -TU

-Ntableowner.% -Ddbname -XOD

若要为所有用户表生成 DDL (使用值 OU),请改用 -XOU,其中 X 是扩 展类型, OU 表示用户表:

ddlgen -Ulogin -Ppassword -Sserver:port -TU

-Ntableowner.% -Ddbname -XOU

为包括用户表和代理表在内的所有表生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TU -Ndbname.tableowner.%

示例 34 (触发器)通过对 -N 选项使用完全限定的 dbname . owner . trigger_name 格式,为名为 HARBOR 的计算机(使用端口 1955)上 pubs2 数据库的 checksum 触发器生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TTR -Npubs2.dbo.checksum

或者,可以使用 -D 选项指定 database_name

ddlgen -Ulogin -Ppassword -Sserver:port -TTR

-Nowner.triggername -Ddbname

也可以使用以下格式为表的某一触发器生成 DDL

-Ndb_name.table_owner.table_name.trigger_name

为数据库的所有触发器生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TTR -Ndbname.owner.%

也可以使用以下格式为表的所有触发器生成 DDL

-Ndb_name.table_owner.table_name.%


image

注释 为表的所有触发器生成 DDL 时,不能使用 -D 参数。

image


示例 35 (用户定义的数据类型)通过对 -N 选项使用完全限定的 dbname . userdefined_datatype 格式,为名为 HARBOR 的计算机 (使用端 口 1955)上 pubs2 数据库的用户定义数据类型 “Identype”生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TUDD -Npubs2.Identype

或者,可以使用 -D 选项来指定 dbname

ddlgen -Ulogin -Ppassword -Sserver:port -TUDD

-Nuserdefined_datatype -Ddbname

为所有用户定义的数据类型生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TUDD -Nbname.%

示例 36 (视图)通过对 -N 选项使用完全限定的 dbname . owner . viewname 格式,为名为 HARBOR 的计算机 (使用端口 1955)上运行的 pubs2 数 据库中 Miller 所拥有的 retail 视图生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TV -Npubs2.miller.retail

或者,可以使用 -D 选项来代替使用全限定名:

ddlgen -Ulogin -Ppassword -Sserver:port -TV -Nowner.viewname -Ddbname

为所有视图生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TV -Ndbname.owner.%

示例 37 (用户)通过对 -N 选项使用完全限定的 dbname . username 格式, 为名为 HARBOR 的计算机 (使用端口 1955)上运行的 pubs2 数据库中 的用户 Smith 生成 DDL

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TUSR -Npubs2.smith

或者,可以使用 -N -D 选项来代替在 -N 中使用全限定名:

ddlgen -Ulogin -Ppassword -Shost_name:port -TUSR -Nusername -Ddbname

为所有用户生成 DDL

ddlgen -Ulogin -Ppassword -Sserver:port -TUSR -Ndbname.%

示例 38 (逻辑集群)为服务器 “ase1”上的 “my_lcluster”生成

DDL,用户应输入:

ddlgen -Usa -P -Sase1 -TLC -Nmy_lcluster

示例 39 (逻辑集群)为服务器 “ase1”上的所有逻辑集群生成 DDL, 用户应输入:

ddlgen -Usa -P -Sase1 -TLC -N%

示例 40 (用户定义的 Web 服务)通过对 -N -T 选项使用完全限定的

dbname.username.webservice_name 格式,为在名为 HARBOR 的计算机

(使用端口 1995)上运行的 pubs2 数据库中用户定义的指定 Web 服务

sp_who_service 生成 DDL


ddlgen -Uroy -Proy123 -SHARBOR:1995 -TWS

-Npubs2.dbo.sp_who_service

为指定的用户定义的 Web 服务生成 DDL 的语法如下所示:

ddlgen -Ulogin -Ppassword -Shost_name:port -TWS

-Ndbname.owner.webservice_name

为数据库 dbname 中所有用户拥有的所有用户定义的 Web 服务生成 DDL

ddlgen -Ulogin -Ppassword -Shost_name:port -TWS -Ndbname.%.%


image

注释 仅在为所有用户定义的 Web 服务或数据库生成 DDL 时,才会生 成 sp_webservices 'addalias' 语句。

image


用法 ddlgen 不识别视图、存储过程或触发器中的现有序列。因此,如果 为数据库生成 DDL,则在对具有依赖性的视图、存储过程和触发器 运行 ddlgen 之前,必须先对这些独立的项目运行 ddlgen。例如,如 果视图 B 依赖于视图 A,那么必须先对视图 A 运行 ddlgen,然后再 对视图 B 运行该命令。

ddlgen 的缺省信息是:


选项

参数

必需

缺省值

-U

username

-P

password

-S

host_name:port_number

-T

object_type

请参见用于一系列有效对象类型的 -T 参数 说明

数据库

-N

object_name

是,如果 -T

object_type 不是 DB

(数据库)

username 的缺省数据库 名,如果 -T object_type db 或如果没有指定 -T

-D

database_name

username 的缺省数据库

-X

extended_object_type

否;仅在 -T

选项有:

OU – 用于用户表、用户数据库 (不包 括临时数据库)和存储过程 (不包括

object_type 为以下对

象时才使用:

U (用户表)

SQLJ 过程)。

P (过程)

OD – 用于代理表、临时数据库和

DB (数据库)

SQLJ 过程。

-O

output_file_name

标准输出

-E

error_file_name

标准输出

-L

log_file_name

-V

ddlgen version_number


在命令行中,使用包括在 Adaptive Server 安装中的 ddlgen shell 脚本 文件 (Windows 中的 ddlgen.bat)来调用 ddlgenDDLGen.jar 中的 主类是 com.sybase.ddlgen.DDLGenerator

Adaptive Server Sybase Central 插件中启动 ddlgen

a 右键单击要为其生成 DDL 的对象。

b 选择 Generate DDL

create table 的输出 DDL 中,绑定语句作为独立 DLL 而不是相关

DLL 生成。

下节提供有关以下内容的详细信息:

173 页的 “隐藏 ddlgen 中的口令”

174 页的 “将 ddlgen 用于加密列”

隐藏 ddlgen 中的口令

当您在 UNIX 命令行环境中发出 ddlgen 实用程序命令时,该 UNIX 计算 机上的其他用户会看到 ddlgen 命令。如果这些用户发出 ps 进程管理命 令 (显示该计算机上运行的进程的状态),则他们还会看到该命令的口 令。

使用 ddlgen -P 口令参数选项,您可以从脚本调用 ddlgen,这样便可向其 他用户隐藏口令。

要实现此目的,请将 $PSWD 环境变量设置为指向 Adaptive Server 登录 口令,并在 -P 参数中包括字符串 “ext”。 ext 充当伪口令,以便您在下 一脚本行中提供实际口令。在命令行或 Bourne shell 脚本中设置

$PSWD,但不要从 C-shell 中设置。

使用 $PSWD 运行 ddlgen

1 设置 $PSWD 环境变量:

setenv PSWD pass_word

2 运行 ddlgen

ddlgen -Ulogin -Pext -Sserver:port -Ttype -Nname << END

$PSWD END

如果您希望将口令保存在文件中,请将 $PSWD 替换为 'cat filename ',其 中 filename 是口令文件的位置。例如:

ddlgen -Ulogin -Pext -Sserver:port -Ttype -Nname << END 'cat filename'

END


ddlgen 用于加密列

ddlgen 实用程序支持早于 15.0.2 的加密。早于 15.0.2 ddlgen 支持 包括为数据库中的加密密钥生成 DDL,以及生成用于在服务器之间 同步加密密钥的 DDL

如果在 Adaptive Server 15.0.2 版或更高版本中使用 ddlgen 为加密密 钥生成 DDL,则该 DDL 可能会导致在版本早于 15.0.2 Adaptive Server 上出现错误,特别是加密密钥通过用户指定的口令进行加密 或具有密钥副本时更是如此。

表示加密密钥的 EK 类型可生成用于创建加密密钥并向其授权权限 的 DDLddlgen 可生成加密列信息和 grant decrypt 语句以及表定义。

如果未指定 -XOD 选项,并且已使用 with passwd 子句在源数据库中 创建了要迁移的密钥,则 ddlgen 会生成 create encryption key 命令, 该命令使用 password 作为其显式口令。这与 ddlgen 处理角色和登录 口令的方法相同。

-XOD 生成 create encryption key,该语句指定用 sysencryptkeys 表示的 密钥加密值。在移动数据时使用 -XOD 可在服务器之间同步加密密钥。

ddlgen -XOD 可生成包含系统加密口令 (如果已设置系统加密口令 并为使用系统加密口令加密的密钥生成 DDL)的 DDL 以及密钥的 DDL

生成 DDL 而不指定 -XOD 标志

如果用户未在 ddlgen 中指定 -XOD 标志,则会发生以下两种情况:

创建加密密钥时,如果用户指定口令, ddlgen 将生成不带口 令的 DDL

最初创建加密密钥时,如果用户指定了口令, ddlgen 将生成缺 省口令 “password”。这与 ddlgen 处理角色和登录口令的方法 相似,其输出类似以下内容:

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

-- DDL for EncryptedKey 'ssn_key'

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

print 'ssn_key'


--The DDL is generated with a default password 'password' as

--a password was specified when this key was created.


create encryption key SampleKeysDB.dbo.ssn_key for AES with keylength 128

passwd 'password' init_vector random go


生成带有 -XOD 标志的 DDL

当用户在 ddlgen 命令中指定 “-XOD”时, ddlgen 将生成包含系统 加密口令的 DDL (如果已设置系统加密口令并为使用系统加密口 令加密的密钥生成 DDL)和密钥的 DDL

以下语法将生成系统加密口令:

ddlgen -Usa -P -Sserver -TEK -NsampleKeysdb.dbo.ek1 -XOD

该命令的输出为:

-- System Encryption Password


use SampleKeysDB go


sp_encryption 'system_encr_passwd', '0x8e050e3bb607225c60c7cb9f59124e99866ca22e677b2cdc9a4d09775850f4721',

NULL, 2, 0

go


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

-- DDL for EncryptedKey 'ek1'

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


print '<<<<< CREATING EncryptedKey - "ek1" >>>>>' go


create encryption key SampleKeysDB.dbo.ek1 for AES with keylength 128

passwd 0x0000C7BC28C3020AC21401

init_vector NULL keyvalue

0xCE74DB1E028FF15D908CD066D380AB4AD3AA88284D6F7742DFFCADCAABE4100D01

keystatus 32 go


image

注释 在使用 ddlgen 将密钥从源服务器迁移到目标服务器时,如果 要为使用 “-XOD”参数生成的加密密钥运行 ddlgen 输出 (在源服 务器中),请在目标服务器中将系统加密口令设置为 NULL (如果 存在)。否则,在尝试针对目标服务器执行 ddlgen 输出时,将出现 错误。

image


密钥副本支持 ddlgen 实用程序还可为密钥副本以及基本密钥生成 DDL。 例如,以下语法将为 “ssn_key”及其密钥副本生成 DDL

ddlgen -Usa -P -Sserver -TEK -NSampleKeysDB.dbo.ssn_key


ddlgen 的输出如下所示:

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

-- DDL for EncryptedKey 'ssn_key'

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

print 'ssn_key'


--The DDL is generated with a default password 'password' as

--a password was specified when this key was created.


create encryption key SampleKeysDB.dbo.ssn_key for AES with keylength 128

passwd 'password' init_vector random go


print 'Key Copies for ssn_key'

-- Generating DDL for Key Copies for 'ssn_key' alter encryption key 'ssn_key'

with passwd 'password'

add encryption with passwd 'passwd' for user 'dbo'.

如果包含 -XOD 标志,则密钥副本的 DDL 如下所示:

alter encryption key SampleKeysDB.dbo.ssn_key add encryption with keyvalue

0x84A7360AA0B28801D6D4CBF2F8219F634EE641E1082F221A2C58C9BBEC9F49B501 passwd 0x000062DF4B8DA5709E5E01

keystatus 257 for user 'user1' go

EKC 加密密钥副本过 滤器

Adaptive Server 15.0.2 中,ddlgen 可支持 -F 过滤器参数的 EKC (加密 密钥副本)扩展类型,以禁止为加密密钥生成密钥副本。

在为 “ssn_key”加密密钥生成 DDL 时,以下示例使用 -FEKC 来避免为 密钥副本创建 DDL

ddlgen -Usa -P -Sserver -TEK -NSampleKeysDB.dbo.ssn_key -FEKC

ddlgen 的输出如下所示:

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

-- DDL for EncryptedKey 'ssn_key'

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

print 'ssn_key'


--The DDL is generated with a default password 'password' as

--a password was specified when this key was created.


create encryption key SampleKeysDB.dbo.ssn_key for AES with keylength 128

passwd 'password' init_vector random go

创建表 DDL ddlgen 可以生成 decrypt_default 语句 (如果已对加密列进行设置)以及 表的 DDL

以下示例对名为 employee 的表发出 ddlgen 命令,该表具有一个 “ssn” 列,该列使用加密密钥 “ssn_key”进行加密,其解密缺省值设置为 “100”:

ddlgen -Usa -P -Sserver -TU -Nemployee

该命令的 DDL 输出为:

create table employee (

ssn int not null encrypt with ssn_key decrypt_default

last_name

int

not

null ,

first_name

int

not

null

last_name

int

not

null ,

first_name

int

not

null

100 ,


)

lock allpages on 'default'

go

权限 若要为以下对象生成 DDL,用户必须具有 sa_role sso_role

加密密钥

登录名

角色 对于所有其它对象,用户无需任何特定权限或角色即可生成 DDL




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

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。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------