从A表创建B表

例如:需要创建一张表B,表的内容及结构跟表A完全一样,类似于SQL SERVER中的CREATE TABLE A AS SELECT * FROM B;

在sybase中只能使用下面的方法创建:
1、用sa修改sp_dboptin参数

use master
 go
 sp_dboption 库名,‘select into’,true
 go

2、执行以下语句创建表B

select * into A from B;

表增删改查

Sybase中DDL语句不能修改字段的数据类型,只能修改空与非空:
1.删除列:

ALTER TABLE table_name DROP column_name;

2.增加列:

ALTER TABLE table_name ADD (column_name DATA_TYPE [NOT] NULL);

3.修改列的空与非空:

ALTER TABLE table_name MODIFY column_name [NOT] NULL;


修改列的字段类型:ALTER TABLE table_name MODIFY column_name 列属性

4.修改列名:

#ALTER TABLE table_name RENAME old_column_name TO new_column_name;
 exec sp_rename ‘表明.列名’,’newname’
 EXEC sp_rename ‘表名.[原列名]’, ‘新列名’, ‘column’


注:测试alter修改没有成功,不知道是环境原因还是什么的,大家可以试一下。

5.快速建立临时表:

SELECT * INTO [#]table_name FROM …;

6、修改表名:

//ALTER TABLE old_table_name RENAME new_table_name
 exec sp_rename ‘表名’ , ‘ newtalbe_name

7.增加主键约束:

ALTER TABLE tb_name ADD CONSTRAINT pk_name PRIMARY KEY(col_name,…)

8.删除主键约束:

ALTER TABLE tb_name DROP CONSTRAINT pk_name;

9.建立自增长字段,与Oracle的SEQUENCE类似:

CREATE TABLE TMP_001 (RES_ID INTEGER IDENTITY NOT NULL);

10.添加表注释:

COMMENT ON TABLE table_name IS ‘…’;

11.创建索引:

CREATE INDEX index_name ON table_name(column_name);