sybase 设置默认值_[转]SYBASE 数据库操作笔记

本文是关于SYBASE数据库的操作笔记,详细记录了数据库大小写敏感性问题及解决方法,以及在创建表时设置默认值的缺陷和处理方案。此外,还讨论了SYBASE的兼容性问题、存储过程的使用以及批量创建索引的存储过程示例。
摘要由CSDN通过智能技术生成

SYBASE 数据库操作笔记(转自MaYong)

数据库表名、列名(执行严格的大小写)

数据库表名、列名识别大小写区分(即表名是大写 查询时小写就错误)

大小写敏感的问题是因为字符集影响的,改为UTF8字符集后问题解决。

SYBASE数据库的缺陷(版本SYBASE ASE 15.5)(目前在使用过程中发现的数据库本身的缺陷)

1.创建表是设置列的默认值是不会检测的(例如一列字段的数据类型为VARCHAR,默认值可以设置为数字2,可以正常创建表成功;但是当插入数据时(不给此列插入值)就报错啦,不能正常插入数据。)可能数据库创建表时没有去验证默认值吧。

解决方案只能是自己检查好创建语句,严格遵守默认值的数据类型。

2.兼容性:不会自动转换数据类型,与上面问题类似,INT型不能插入字符型的('1'),反之一样。这是数据库的严谨性可以理解,呵呵。

3.创建表与对表操作的语句不能直接放到循环或者判断语句中,

SYSBASE是先执行创建表的语句(看来创建表的待遇基本不是一般的高啊),

然后才执行条件的判断,这点压根不符合程序的逻辑性。(不知SYBASE数据库的工程师们是怎么想的)

解决方案,是再创建一个存储过程,将要创建的表明传给他,在判断或循环是调用此存储过程。

4.还有一些小问题暂时就不说啦。

--查询数据库中用户表的名称

SELECT name FROM sysobjects WHERE type='U' order by name

--查询数据库中存储过程的名称

SELECT name FROM sysobjects WHERE type = 'P'

--查询数据库中函数的名称

SELECT name FROM sysobjects WHERE type='SF'

--执行存储过程:exec 存储过程名称 第一个参数,第二个参数

exec dbo.Pro_CreateIndex js_seqsql, ssql_type

--查询表的全部索引OBJECT_ID('表名') indid>0为索引类型

SELECT name FROM sysindexes WHERE id = OBJECT_ID('js_seqsql') and indid>0

--删除索引 表名.索引名称

DROP INDEX js_seqsql.js_seqsql_idx_ssql_type

--创建索引 CREATE NONCLUSTERED INDEX 索引名称 ON 表名(列名)

CREATE NONCLUSTERED INDEX js_seqsql_idx_ssql_type ON js_seqsql(ssql_type)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值