pb中批改SQL表结构的一些代码
pb中修改SQL表结构的一些代码
修改字段数据类型alter table department modify dept_name varchar2(12)
alter table 表名 modify 列名 新的数据类型
SQL删除主键alter table pic drop CONSTRAINT pk_pic
alter table 表名 drop CONSTRAINT pk_表名
删除字段(列)alter table pic drop COLUMN id
alter table 表名 drop COLUMN 列名(字段名)
设置主键ALTER Table pic ADD CONSTRAINT pk_pic PRIMARY KEY (dh)
ALTER Table 表名 ADD CONSTRAINT pk_表名 PRIMARY KEY (列名/字段名)
取得对应表结构所有列名称select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='pic');
select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名');
判断是否存在指定列名是否存在select name into :ls_id from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='pic') and name = 'id';
select name into :ls_id from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名') and name = '列名';
if ls_id = '' then
列名不存在
else
列名存在
end if
pb中的表结构主键修改,使用动态SQLstring ls_Mysql
ls_Mysql="SQL语句"
sqlca.autocommit = true
EXECUTE IMMEDIATE :ls_Mysql;
sqlca.autocommit = false
------解决方案--------------------
sysobjects ,syscolumns 应该不通用所有数据库吧
修改字段数据类型alter table department modify dept_name varchar2(12)
alter table 表名 modify 列名 新的数据类型
SQL删除主键alter table pic drop CONSTRAINT pk_pic
alter table 表名 drop CONSTRAINT pk_表名
删除字段(列)alter table pic drop COLUMN id
alter table 表名 drop COLUMN 列名(字段名)
设置主键ALTER Table pic ADD CONSTRAINT pk_pic PRIMARY KEY (dh)
ALTER Table 表名 ADD CONSTRAINT pk_表名 PRIMARY KEY (列名/字段名)
取得对应表结构所有列名称select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='pic');
select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名');
判断是否存在指定列名是否存在select name into :ls_id from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='pic') and name = 'id';
select name into :ls_id from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名') and name = '列名';
if ls_id = '' then
列名不存在
else
列名存在
end if
pb中的表结构主键修改,使用动态SQLstring ls_Mysql
ls_Mysql="SQL语句"
sqlca.autocommit = true
EXECUTE IMMEDIATE :ls_Mysql;
sqlca.autocommit = false
------解决方案--------------------
sysobjects ,syscolumns 应该不通用所有数据库吧