从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);