用 Sql添加删除字段,判断字段是否存在的方法

本文介绍了SQL中如何进行字段的增加、删除、修改类型、改名以及判断表中是否存在特定字段的操作,包括了添加列、删除列、修改列类型、列改名等SQL语句使用场景。

http://www.cnblogs.com/dwjaissk/archive/2006/07/25/459476.aspx

 

 

增加字段
alter table docdsp  add dspcode char(200)
删除字段
ALTER TABLE table_NAME DROP COLUMN column_NAME
修改字段类型
ALTER TABLE table_name  ALTER COLUMN column_name new_data_type
改名
sp_rename
更改当前数据库中用户 创建对象(如表、列或用户定义数据类型)的名称。

语法
sp_rename [ @objname = ] 'object_name' ,
    [ @newname = ] 'new_name'
    [ , [ @objtype = ] 'object_type' ]

 

--假设要处理的表名为: tb

--判断要添加列的表中是否有主键
if exists(select 1 from sysobjects where parent_obj=object_id('tb') and xtype='PK')
begin
 print '表中已经有主键,列只能做为普通列添加'

 --添加int类型的列,默认值为0
 alter table tb add 列名 int default 0 
end
else
begin
 print '表中无主键,添加主键列'

 --添加int类型的列,默认值为0
 alter table tb add 列名 int primary key default 0 
end
/**************************************************************************************/

判 断table1中是否存在name字段
if exists(select * from syscolumns where id=object_id('table1') and name='name') begin
select * from people;
end

SQL判断表中字段是否存在,可以使用不同的方法,具体取决于数据库管理系统(DBMS)的类型。以下是一些常见数据库的实现方法。 ### Microsoft SQL Server 在 SQL Server 中,可以通过查询系统视图 `sysobjects` 和 `syscolumns` 来判断字段是否存在。 ```sql IF EXISTS ( SELECT 1 FROM sysobjects T1 INNER JOIN syscolumns T2 ON T1.id = T2.id WHERE T1.name = '表名' AND T2.name = '字段名' ) BEGIN PRINT '存在' END ELSE BEGIN PRINT '不存在' END ``` 或者使用更简洁的方式: ```sql IF COL_LENGTH('表名', '字段名') IS NOT NULL BEGIN PRINT '存在' END ELSE BEGIN PRINT '不存在' END ``` ### MySQL 在 MySQL 中,可以通过查询 `information_schema.columns` 来判断字段是否存在。 ```sql SELECT COUNT(*) FROM information_schema.columns WHERE table_name = '表名' AND column_name = '字段名'; ``` 如果返回的计数大于 0,则表示字段存在;否则,字段存在。 ### Oracle 在 Oracle 数据库中,可以通过查询 `user_tab_columns` 来判断字段是否存在。 ```sql SELECT COUNT(*) FROM user_tab_columns WHERE table_name = '表名' AND column_name = '字段名'; ``` 同样,如果返回的计数大于 0,则表示字段存在;否则,字段存在。 ### PostgreSQL 在 PostgreSQL 中,可以通过查询 `information_schema.columns` 来判断字段是否存在。 ```sql SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = '模式名' AND table_name = '表名' AND column_name = '字段名'; ``` 如果返回的计数大于 0,则表示字段存在;否则,字段存在。 ### 总结 不同的数据库管理系统有不同的方法判断字段是否存在。在 SQL Server 中,可以使用 `sysobjects` 和 `syscolumns` 视图;在 MySQL 中,可以使用 `information_schema.columns`;在 Oracle 中,可以使用 `user_tab_columns`;而在 PostgreSQL 中,则可以使用 `information_schema.columns`。每种方法都有其特定的查询方式,以适应各自的系统架构和元数据存储方式[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值