(2期) 数据库所有表批量增加字段

本文介绍了一种在数据库中批量为所有主表增加VMDTIME和VMDUSER字段的方法,适用于LandaV8机制下的系统。
/*********************************************************************************************
Function:数据库所有表批量增加字段
Author:Bean
Date:2012-09-24
*********************************************************************************************/
--给系统所有主表增加 VMDTIME(修改时间) 和 VMDUSER(修改人) 两个字段
--前提:所有主表采用_1结尾(Landa V8机制)
declare @tbname varchar(100)									--定义表明 接收游标的值
declare mycursor cursor for										--定义游标
	--查询系统所有主表 
	select Name from sysobjects a						
	where xtype='u'										
		and right(name,2)='_1'
	and not exists 
	(
		select 1 from syscolumns b
		where b.id=object_id(a.name)
		and (b.name='VMDTIME' or b.name='VMDUSER' )
	)
open mycursor													--打开游标
fetch next from mycursor into @tbname							--获取数据
while @@fetch_status=0											--循环
Begin												
	exec('alter table '+@tbname+' add VMDTIME datetime')		--增加VMDTIME字段
	exec('alter table '+@tbname+' add VMDUSER varchar(100)')	--增加VMDUSER字段
	fetch next from mycursor into @tbname						--循环获取数据
End
close mycursor													--关闭游标
deallocate mycursor												--删除游标

### 在 Oracle 数据库中新增字段的 SQL 语句 在 Oracle 数据库中,可以使用 `ALTER TABLE` 语句来向已有的中新增字段。以下是关于如何正确使用该语句的相关说明和示例。 #### 新增单个字段 要向添加一个新的字段,可以使用以下语法: ```sql ALTER TABLE 名 ADD (字段名 数据类型 [DEFAULT 默认值] [NULL | NOT NULL]); ``` 其中: - **名** 是指需要修改的的名字。 - **字段名** 是新字段的名称。 - **数据类型** 指定新字段的数据类型及其长度(如适用)。 - **DEFAULT 默认值** 可选参数,指定插入记录时如果没有提供该字段的值,则自动填充为默认值。 - **NULL | NOT NULL** 可选约束条件,默认情况下允许为空 (`NULL`)。 例如,假设有一个名为 `employees` 的,现在希望为其增加一个存储员工邮箱地址的新字段 `email`,其数据类型为 `VARCHAR2(100)` 并设置不允许为空(`NOT NULL`),可以通过下述命令完成: ```sql ALTER TABLE employees ADD (email VARCHAR2(100) DEFAULT 'unknown@example.com' NOT NULL); ``` #### 批量新增多个字段 如果一次性需要给同一个添加多个字段,可以在一条 `ALTER TABLE` 命令里依次列出这些字段的信息,彼此间用逗号分隔开即可。例如,在前面提到的 `employees` 基础上再额外加入两个分别代电话号码与出生日的新字段: ```sql ALTER TABLE employees ADD ( phone_number VARCHAR2(20), birth_date DATE ); ``` 以上操作均需具备相应权限才能成功执行,并且需要注意的是,对于生产环境下的大型格而言,随意更改结构可能带来性能损耗或者锁定资源的风险,因此建议事先做好充分评估测试工作后再实施变更动作[^4]。 --- ### 示例代码片段说明 这里给出几个具体的应用实例帮助理解实际运用情况: 1. **仅添加基本字段** ```sql ALTER TABLE products ADD product_description CLOB; ``` 2. **设定初始默认值的同时规定不可为空** ```sql ALTER TABLE orders ADD order_status CHAR(1) DEFAULT 'N' NOT NULL; ``` 3. **同时追加若干不同特性的列项** ```sql ALTER TABLE customers ADD ( loyalty_points NUMBER(8,0), last_purchase TIMESTAMP WITH TIME ZONE ); ``` 每种情形依据业务需求灵活组合各项属性选项达成目的。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值