随着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
- 安全性管理指南
- 实用程序指南
使用系统提供的数据类型
表 6- 1 列出了系统提供的用于不同类型信息的数据类型、Adaptive Server 可识别的同义词以及每种数据类型的范围和存储大小。尽管 Adaptive Server 允许系统数据类型以大写或小写方式输入,但它们是以小写字符 输出的。大多数由 Adaptive Server 提供的数据类型并不是保留字,且可 用于命名其它对象。
表 6-1:Adaptive Server 系统数据类型
数据类型种类 同义词 域 存储的字节数
精确数值:整数
bigint 2 63 和 -263 - 1 (从 8
-9,223,372,036,854,775,808 到
+9,223,372,036,854,775,807)之间的
整数,包括这两个值。
int integer 231 -1 (2,147,483,647) 到 4
-231 (-2,147,483,648)
smallint 215 -1 (32,767) 到 -215 (-32,768) 2
tinyint 0 到 255 (不允许使用负数) 1
unsigned bigint 0 到 18,446,744,073,709,551,615 之间 8
的整数
unsigned int 0 到 4,294,967,295 之间的整数 4
unsigned smallint 0 到 65535 之间的整数 2
精确数值:小数
numeric (precision, scale)
decimal (precision, scale) 近似数值
1038 -1 到 -1038 2 到 17
dec 1038 -1 到 -1038 2 到 17
float (precision) 与计算机有关 default precision < 16 时为 4,
default precision >= 16 时为 8
double precision 与计算机有关 8
real 与计算机有关 4
货币
smallmoney 214,748.3647 到 -214,748.3648 4
数据类型种类 同义词 域 存储的字节数
money 922,337,203,685,477.5807 到 8
-922,337,203,685,477.5808
日期 / 时间
smalldatetime 1900 年 1 月 1 日至 2079 年 6 月 6 日 4
datetime 1753 年 1 月 1 日至 9999 年 12 月 31 日 8
date 0001 年 1 月 1 日至 9999 年 12 月 31 日 4
time 中午 12:00:00 到夜里 11:59:59:999。 4
bigdatetime 0001 年 1 月 1 日到 9999 年 12 月 31 8 日,中午 12:00:00.000000 AM 到夜里 11:59:59.999999
bigtime 中午 12:00:00.000000 到夜里 8
11:59:59.999999。
字符
char(n) character 页大小 n
varchar(n) character varying、 char varying
页大小 实际条目长度
unichar Unicode 字符 页大小 n * @@unicharsize
(@@unicharsize 等于 2)
univarchar Unicode 字符 varying、 char varying
nchar(n) national character、 national char
nvarchar(n) nchar varying、 national char varying、 national character varying
页大小 实际字符数 *
@@unicharsize
页大小 n * @@ncharsize
页大小 @@ncharsize * 字符数
text 231 -1 (2,147,483,647) 字节或者更少 未初始化时为 0 ; 初始化后是 2K 的倍数
unitext 1,073,741,823 个 Unicode 字符或更少 未初始化时为 0 ;初始化后 是 2K 的倍数
二进制
binary(n) 页大小 n
varbinary(n) 页大小 实际条目长度
image 231 -1 (2,147,483,647) 字节或者更少 未初始化时为 0 ; 初始化后是 2K 的倍数
位
bit 0 或 1 1 (1 个字节最多容纳
8 bit 列)
Adaptive Server 提供了数据类型 bigint、 int、 smallint、 tinyint、 unsigned bigint、unsigned int 和 unsigned smallint 来存储整数。这些类型是精确数值 类型,它们在算术运算中保留其精确性。
基于要存储数字的预期大小在各种整数类型中选择。内部存储大小视数 据类型的不同会有所变化。
仅当值处于要转换为的类型的范围内时,才支持从任一整数类型到其它 整数类型的隐式转换。
无符号的整数数据类型允许您为现有的整数类型扩展正数的范围,而不 增加所需的存储大小。也就是说,这些数据类型的有符号版本既可以向 负数方扩展,也可以向正数方向扩展 (例如,从 -32 到 +32 )。但是, 无符号版本只能向正数方向扩展。 表 6-2 描述了这些数据类型的有符号 和无符号版本的范围。
表 6-2:有符号和无符号数据类型的范围
数据类型 |
有符号数据类型的范围 |
数据类型 |
无符号数据类型的范围 |
bigint |
-263 和 263 - 1 (从 -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807)之间的整 数,包括这两个值 |
unsigned bigint |
0 到 18,446,744,073,709,551,615 之间 的整数 |
int |
-231 和 231 - 1 (-2,147,483,648 和 2,147,483,647)之间的整数,包括这 两个值 |
unsigned int |
0 到 4,294,967,295 之间的整数 |
smallint |
-215 和 215 -1 (-32,768 和 32,767)之 间的整数,包括这两个值 |
unsigned smallint |
0 到 65535 之间的整数 |
对于包含小数点的数字,可使用精确数值类型 numeric 和 decimal。将存 储在 numeric 和 decimal 列中的数据进行压缩以节省磁盘空间,并在算术 运算后将数据的精确度保留到最低有效位。除了下面这种情况以外, numeric 和 decimal 类型在其它方面都相同:仅标度为 0 的 numeric 类型可 以用于标识列。
精确数值类型可接受两种可选参数, precision 和 scale,这两个参数加有 小括号,并以逗号分隔:
datatype [(precision [, scale ])]
Adaptive Server 将每种精度和标度的组合都定义为一种不同的数据类型。 例如, numeric (10,0) 和 numeric (5,0) 是两种不同的数据类型。精度和标 度确定了可以存储在 decimal 或 numeric 列中的值的范围:
• precision 指定了能够在该列中存储的最大小数位数。它包括小数点 左右两侧的所有位数。可将精度指定为 1 至 38 位范围内的一个值,
或者使用缺省的 18 位精。
• scale 指定了能够存储到小数点右侧的最大位数。标度必须小于或等 于 precision。可将标度指定为 0 至 38 位范围内的一个值,或者使用
缺省的 0 位标度。
标度为 0 的精确数值类型显示时没有小数点。不能输入超过列的精度或 标度范围的值。
numeric 或 decimal 列的存储大小取决于其精度。 1 或 2 位数列的最小存 储要求为 2 个字节。精度每增加 2 位,存储大小就增加 1 个字节,最多
可增加 17 个字节。
数值类型 float、 double precision 和 real 用于存储在算术运算中允许舍入 的数值数据。
近似数值数据类型将按二进制小数存储的实数的近似表示存储为二进制 traction。只要显示、输出、在主机间传送或在计算中使用近似数值,数 字就会失精度。 isql 只显示小数点后的 6 位有效数字,并舍入其余数 字。有关受支持的数据类型转换的列表,请参见 《参考手册:构件块》 中的第 1 章 “系统数据类型和用户定义的数据类型”。
可将近似数值类型用于包含各类数值的数据。它们支持所有集合函数和 所有算术运算。
real 和 double precision 类型是在操作系统提供的类型的基础上建立的。 float 类型接受小括号内的可选精度。精度为 1 至 15 的 float 列存储为 real; 而具有更高精度的那些列存储为 double precision。所有这三种类型的范 围和存储精度都与计算机相关。
货币数据类型 money 和 smallmoney 用于存储货币数据。尽管 Adaptive Server 没有提供将一种货币转换为另一种货币的方法,但可将这些数据 类型用于美元和其它十进制货币。可以将 money 和 smallmoney 数据用于 除 modulo 外的所有算术运算以及所有集合函数。
money 和 smallmoney 都精确到货币单位的万分之一,但显示时它们将数 值向上舍入,只保留两位小数。缺省的输出格式是在每三位后放置一个 逗号。
使用 datetime 和 smalldatetime 数据类型存储 1753 年 1 月 1 日至 9999 年
12 月 31 日的日期和时间信息。将 date 用于 0001 年 1 月 1 日至 9999 年
12 月 31 日的日期,将 time 用于中午 12:00:00 至夜里 11:59:59:999 的时 间。必须将超出此范围的日期作为 char 或 varchar 值进行输入、存储和 处理。
• datetime 列可保存从 1753 年 1 月 1 日到 9999 年 12 月 31 日之间的日 期。在支持 1/300 秒精度级别的平台上, datetime 值可精确到该级 别。存储大小为 8 个字节:4 个字节用于存储自 1900 年 1 月 1 日这
一基准日期以来的天数,另外 4 个字节用于存储当天的时间。
• smalldatetime 列可保存从 1900 年 1 月 1 日到 2079 年 6 月 6 日之间的 日期,其精确度可以精确到分钟。存储大小为 4 个字节:2 个字节 用于存储 1900 年 1 月 1 日以后天数,另外 2 个字节用于存储自午夜 以后的分钟数。
• bigdatetime 列可保存从 0001 年 1 月 1 日到 9999 年 12 月 31 日的日期
以及中午 12:00:00.000000 到夜里 11:59:59.999999 之间的时间。存储 大小为 8 个字节。 bigdatetime 值精确到微秒。 bigdatetime 的内部表 示是一个 64 位整数,其中包含自 0000 年 1 月 1 日以来所逝去的微 秒数。
• bigtime 列可保存从中午 12:00:00.000000 到夜里 11:59:59.999999 之间 的时间。存储大小为 8 个字节。 bigtime 值精确到微秒。 bigtime 的内 部表示是一个 64 位整数,其中包含自午夜以来所逝去的微秒数。
• date 是实际值,由单引号或双引号括起来的日期部分组成。该列可 以保存从 0001 年 1 月 1 日至 9999 年 12 月 31 日的日期。存储大小
为 4 个字节。
• time 是实际值,由单引号或双引号括起来的时间部分组成。该列可 以包含从中午 12:00:00 到夜里 11:59:59:999 的时间。存储大小为 4 个字节。
用单引号或双引号将日期和时间信息引起来。可用大写或小写字母输 入,并可在数据分量间包含空格。 Adaptive Server 可识别多种数据输入 格式,详细信息可参见 第 7 章 “添加、更改、传输和删除数据 ”。但 Adaptive Server 拒绝接受诸如 0 或 00/00/00 之类的值,不会将这些值识 别为日期。
日期的缺省显式格式为 “Apr 15 1987 10:23p.m.”。可以将 convert 函数 用于其它格式。尽管 Adaptive Server 可能会舍入或截断毫秒值,但也可 使用内置日期函数对 datetime 值执行某些算术运算,除非您使用 time 数 据类型。
对于 bigdatetime 和 bigtime,显示值会反映微秒精度。 bigdatetime 和
bigtime 的缺省显示格式可容纳此提高的精度。
• hh:mi:ss.zzzzzzAM 或 PM
• hh:mi:ss.zzzzzz
• mon dd yyyy hh:mi:ss.zzzzzz
• yyyy-mm-dd hh:mi:ss.zzzzzz
可用字符数据类型存储由加以单引号或双引号的字母、数字和符号组成 的字符串。使用 like 关键字来搜索字符串以查找特定的字符,并使用内 置字符串函数来处理其内容。使用 convert 函数将由数字组成的字符串 转换为精确和近似数值数据类型,然后将其用于算术运算。
char(n) 数据类型存储固定长度的字符串,而 varchar(n) 数据类型以英语 等单字节字符集存储可变长度的字符串。它们对应的国际字符, nchar(n) 和 nvarchar(n),以日语等多字节字符集存储固定和可变长度的字 符串。 unichar 和 univarchar 数据类型存储常量大小的 Unicode 字符。可 使用 n 指定最大字符数或使用一个字符的缺省列长度。对于大小超过页 大小的字符串,可使用 text 数据类型。
表 6-3:字符数据类型
数据类型 存储
char(n) 固定长度数据,如社会保险号或邮政编码
varchar(n) 名称等长度上可能变化很大的数据
unichar 与 char 同等的固定长度的 Unicode 数据
univarchar 与 varchar 同等的在长度上可能变化很大的 Unicode 数据
nchar(n) 多字节字符集中的固定长度数据
nvarchar(n) 多字节字符集中的可变长度数据
text 将多达 2,147,483,647 个字节的可输出字符存储在各数据 页的链接列表中
unitext 将多达 1,073,741,823 个 Unicode 字符存储在各数据页的 链接列表中
除非设定 string_rtruncation on, Adaptive Server 将条目截断到指定列的长 度而不加警告或出现错误信息。请参见 《参考手册:命令》。空字符串 “ ”或 ‘ ’将存储为单个空格,而不是 NULL。因此,“abc” + “ ” + “def”等于 “abc def”,而不等于 “abcdef”。
• 固定长度列中的数据将被用空白填补到列长度。对于 char 和 unichar 数据类型,存储大小为 n 个字节,( unichar = n*@@unicharsize );对于 nchar,存储大小为平均国家/地区字符长度的 n 倍 ( @@ncharsize )。创 建允许空值的 char、unichar 或 nchar 列时,Adaptive Server 将其转换 为 varchar、univarchar 或 nvarchar 列,并对这些数据类型使用存储规 则。但对 char 和 nchar 变量和参数就并非如此。
• 可变长度列中的数据将被去掉尾随空白,其存储大小即为数据的实 际长度。对于 varchar 或 univarchar 列,它是字符数;对于 nvarchar 列,它是字符数乘以平均字符长度。可变长度字符数据要求的空间 可能比固定长度数据要少,但访问它的速度会稍慢。
unichar 数据类型
unichar 和 univarchar 数据类型支持 Adaptive Server 中 Unicode 的 UTF-16 编码。这些数据类型不依赖于 char 和 varchar 数据类型,但会镜像它们 的行为。
例如,对 char 和 varchar 操作的内置函数也可对 unichar 和 univarchar 进行 操作。但 unichar 和 univarchar 只存储 UTF-16 字符,且与 char 和 varchar 不同,它们与缺省字符集 ID 或缺省排序顺序 ID 没有关系。
每个 unichar / univarchar 字符要求两个字节存储空间。unichar / univarchar 列 的声明是 16 位 Unicode 值的数量。下例将创建一个带有 unichar 列的表, 该列的 10 个 Unicode 值要求 20 个字节的存储空间:
create table unitbl (unicol unichar(10))
正如 char/varchar 列的长度, unichar/univarchar 列的长度也要受数据页大 小的限制。
Unicode 代理对将使用两个 16 位 Unicode 值的存储空间,也就是四个字 节。声明用于存储 Unicode 代理对的列时,要注意这一特点 (一个 16 位 值对,用来表示 [0x010000..0x10FFFF] 范围中的字符)。缺省情况下, Adaptive Server 会正确处理代理,不会拆分对。处理截断 Unicode 数据 的方式与处理 char 和 varchar 数据的方式类似。
可在任何使用 char 表达式的位置使用 unichar 表达式,包括比较运算符、 连接、子查询等等。但是, unichar 和 char 的混合型表达式的执行方式 与 unichar 相同。可参与此类运算的 Unicode 值的数量不能超过 unichar 字符串的最大大小。
规范化过程会修改 Unicode 数据,因此在数据库中,给定的抽象字符序 列只有一种表示法 (有关规范化的讨论,请参见 《性能和调优系统: 基础知识》中的 “基础知识简介”)。通常,后接组合读音符的字符将 被预组合形式所代替。性能可因此而得到显著优化。缺省情况下,服务 器假设所有 Unicode 据都应规范化。
关系表达式
所有至少包括一个 unichar 或 univarchar 表达式的关系表达式都基于缺省
Unicode 排序顺序。如果一个表达式是 unichar,而另一个是 varchar
(nvarchar、 char 或 nchar),则后者会被隐式转换为 unichar。
表 6-4 显示最常在 where 子句中使用的表达式,以及它们在哪里可与逻 辑运算符结合使用。
比较 Unicode 字符数据时,“less than”表示更接近缺省 Unicode 排序顺 序的开头,而 “greater than”表示更接近其结尾。“Equality”表示 Unicode 缺省排序顺对两值不加区别 (尽管它们无需相同)。例如,必 须将预先组合字符 ê 视为等于字母 e 后接 U+0302 的组合序列。(预先 组合字符是 Unicode 字符,可以将其分解为多个其它字符的等值位字符 串。)如果启用了 Unicode 规范化功能 (缺省值),将自动规范化 Unicode 数据,服务器也因此永远不会看到未规化的数据。
表 6-4:关系表达式
expr1 op_compare [any | all] (subquery) 将 any 或 all 与比较运算符和子查询 expr2 一起使用,会
隐式调用 min 或 max。例如, “expr1> any expr2” 实际是 指 “expr1> min(expr2)”。
expr1 [not] in (expression list) expr1 [not] in (subquery)
in 运算符检查与 expr2 中的每个元素是否相等,这些元 素可以是常量列表或子查询结果。
expr1 [not] between expr2 and expr3 between 运算符用于指定范围。它实际上是 “expr1 =
expr2 and expr1<= expr3”的简写形式。
expr1 [not] like "match_string" [escape"esc_char”] like 运算符用于指定要匹配的模式。与 Unicode 数据匹配
的模式的语义和与规则字符数据匹配的模式的语义相 同。如果 expr1 是 unichar 列名,则 “match_string” 可能是 unichar 字符串或 varchar 字符串。在后一种情况下, varchar 和 unichar 之间会发生隐式转换
连接运算符
连接运算符出现的方式与比较运算符相同。实际上,可在连接中使用任 何比较运算符。至少包括一个 unichar 类型表达式的表达式基于缺省的 Unicode 排序顺序。如果一个表达式的类型是 unichar,而另一个类型是 varchar (nvarchar、 char 或 nchar),则后者会被隐式转换为 unichar。
Union 运算符
union 运算符对 unichar 数据的运算方式和它对 varchar 数据的运算方式非 常相似。各个查询中的相应列必须可隐式转换为 unichar,或必须使用显 式转换。
子句和修饰符
unichar 和 univarchar 列用于 group by 和 order by 子句时,将根据缺省
Unicode 排序顺序判断等同性。使用 distinct 修饰符时,也是如此。
text 数据类型
text 数据类型将多达 2,147,483,647 个字节的可输出字符存储在各数据页 的链接列表中。每页最多可存储 1800 个字节的数据。
为节省存储空间,可将 text 列定义为 NULL。用非空值的 insert 或 update 初始化 text 列时, Adaptive Server 会指派一个文本指针,并分配一个完 整的 2K 数据页用于保存值。
如果使用的是与 “组件集成服务 “连接的数据库,则在处理 text 数据 类型的方式上会有些不同。请参见 《组件集成服务用户指南》。
有关 text 数据类型的详细信息,请参见 第 235 页的 “更改 text 、 unitext
unitext 数据类型
可变长度的 unitext 数据类型最多可容纳 1,073,741,823 个 Unicode 字符
(2,147,483,646 字节)。可以在使用 text 数据类型的任何位置,使用具 有相同语义的 unitext。无论 Adaptive Server 的缺省字符集是什么, unitext 列都采用 UTF-16 编码存储。
unitext 数据类型使用的存储机制与 text 相同。为节省存储空间,可将 unitext 列定义为 NULL。用非空值的 insert 或 update 子句初始化 unitext 列 时, Adaptive Server 会指派一个文本指针,并分配一个完整的 2K 数据 页用于保存值。
unitext 的优点包括:
• 大 Unicode 字符数据。除了 unichar 和 univarchar 数据类型,Adaptive Server 还提供了完整的 Unicode 数据类型支持,该支持最适用于增 量多语种应用程序。
• unitext 以 UTF-16 存储数据,它是 Windows 和 Java 环境的本机编码。
请参见 第 235 页的 “更改 text 、 unitext 和 image 数据”和 《参考手册: 构件块》。
二进制数据类型将原始二进制数据,如图片,存储在类似十六进制的符 号中。二进制数据以字符 “ 0x”开头,包括数字与大小写字母 A 到 F 的任意组。 binary 和 varbinary 数据中 “0x”后的两位数字表示数值的类 型:“00”表示正数,“01”表示负数。
如果输入值不包括 “0x”, Adaptive Server 会假定该值为 ASCII 值并将 其转换。
注释 Adaptive Server 对不同平台的二进制类型采取不同的处理方式。 对于真十六进制数据,使用 hextoint 和 inttohex 函数。请参见 第 16 章 “在查询中使用 Transact-SQL 函数 ”。
使用 binary(n) 和 varbinary(n) 数据类型存储达 255 字节长度的数据。每个 存储字节可保存 2 个二进制位。用 n 指定列的长度,或使用 1 个字节的 缺省长度。如果输入了一个长于 n 的值, Adaptive Server 会在不显示警 告或错误的情况下将该条目截断为指定的长度。
• 对于其中所有条目的长度预期会基本相同的数据,可使用固定长度 二进制类型 binary(n)。由于 binary 列中的条目会被用零填充到列长 度,因此它们可能会比 varbinary 列中的条目要求占用的存储空间更 大,但访问它们的速度会稍快。
• 对于预期长度会变化很大的数据,可使用可变长度二进制类型 varbinary(n)。存储大小是输入的数据值的实际大小,不是列长度。 尾随零将被截断。
创建允许空值的 binary 列时,Adaptive Server 会将其转换为 varbinary 列, 并使用该数据类型的存储规则。
可用 like 关键字搜索二进制字符串,并用字符串函数对其进行运算。
注释 由于输入某个特定值的确切格式取决于所使用的硬件,因此在不 同平台上进行涉及二进制数据的计算可能会产生不同的结果。
image 数据类型
使用 image 数据类型将较大的二进制数据块存储到外部数据页上。 image 列可在与表的其它数据存储分离的数据页的链接列表上存储多达 2,147,483,647 个字节的数据。
用非空值的 insert 或 update 初始化 image 列时,Adaptive Server 会指派一 个文本指针,并分配一个完整的 2K 数据页用于容纳值。每页最多可存 储 1800 个字节。
了节省存储空间,可将 image 列定义为 NULL。要添加 image 数据,而 又不想在事务日志中记录大块的二进制数据,可使用 writetext。请参见
《参考手册:命令》。
不能将 image 数据类型用作以下用途:
• 用于存储过程的参数 (作为传递给这些参数的值)或用于局部变量
• 用于远程过程调用 (RPC) 的参数
• 用于 order by、 compute、 group by 或 union 子句
• 用于索引
• 用于子查询或连接
• 用于 where 子句,除非带有关键字 like
• 同 + 并置运算符一起使用
• 用于触发器的 if update 子句
如果使用的是与 “组件集成服务 “连接的数据库,则在处理 image 数 据类型的方式上会有些不同。请参见 《组件集成服务用户指南》。
请参见 第 235 页的 “更改 text 、 unitext 和 image 数据”。
bit 数据类型
将 bit 列用于真/假或是/否类型的数据。bit 列保存 0 或 1。0 或 1 以外的其 它整数值始终会被解释为 1。存储大小为 1 个字节。表中的多个 bit 数据 类型被收集到字节中。例如,7- bit 列将占用 1 个字节;而 9- bit 列则要占 用 2 个字节。
数据类型为 bit 的列不能为 NULL,且其中不能有索引。 syscolumns 系统 表中的 status 列用于指示 bit 列的唯一偏移位置。
对于可在 Open Client™ DB-Library 应用程序中浏览到的表中的列,用户 定义的 timestamp 数据类型是必需的。
每次插入或更新包含 timestamp 列的行时, timestamp 列将自动更新。一 个表只能有一列 timestamp 数据类型。名为 timestamp 的列将自动具有系 统数据类型 timestamp。它的定义为:
因为 timestamp 是用户定义的数据类型,所以不能用它定义其他用户定 义的数据类型。必须全部用小写字母将其输入为 “timestamp”。
sysname 和 longsysname 是用于系统表的用户定义数据类型。sysname 定 义为:
varchar(30) "NOT NULL"
longsysname 定义为:
varchar(255) "NOT NULL"
可以将列、参数或变量声明为 sysname 或 longsysname 类型。或者,也 可以使用 sysname 或 longsysname 的基本类型创建用户定义的数据类型。
然后使用该用户定义的数据类型 创建列。请参见 第 203 页的 “创建用 户定义的数据类型 ”。
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。+-------------------------------------华丽的分割线-------------------------------------------------------------------------