给多个表批量添加一列并赋予默认值

目的:给ck_库存台帐XX 添加一列 发生日期 默认值  (((2000)-(1))-(1))   

虽然写出来sql语句,但是最后我还是手动的一张张表去手动添加的,因为怕有问题,不过我本地测试是没有问题的,毕竟是要更新客户那边的数据库,不敢乱来

DECLARE test_cursor CURSOR SCROLL FOR
SELECT Name FROM SYSOBJECTS WHERE TYPE='U' AND name like 'ck_库存台帐%' and name <> 'ck_库存台帐' and name <> 'ck_库存台帐临时' and name <> 'ck_库存台帐摸板'
--打开游标test_cursor
OPEN test_cursor
--定义变量@dh,用来存储读取后的字段内容
DECLARE @dh varchar(18)
--循环游标将数据库中相应字段内容放到@dh,这里要于select语句后的字段位置要对应
FETCH NEXT FROM test_cursor INTO @dh
--开始循环
WHILE @@FETCH_STATUS=0
BEGIN
--PRINT @dh 

exec ('ALTER TABLE ' +@dh+ ' add 发生日期 datetime')
exec ('ALTER TABLE ' +@dh+ ' ADD CONSTRAINT [DF_'+@dh+'_发生日期] DEFAULT (((2000)-(1))-(1)) FOR [发生日期]')
FETCH NEXT FROM test_cursor INTO @dh
END
--关于游标test_cursor
CLOSE test_cursor
--释放掉test_cursor所用的内存空间
DEALLOCATE test_cursor

转载于:https://www.cnblogs.com/hrx-star/p/4568427.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值