sqlserver中用游标,拼接sql,批量修改数据库字段类型

当数据库设计需要变更,例如将所有nvarchar(2000)字段更改为nvarchar(1000),以及decimal(8,2)字段更改为decimal(8,4)时,可以使用游标配合SQL拼接来批量修改。通过定义游标,从information_schema.COLUMNS获取符合条件的表和列名,然后动态构造并打印ALTER COLUMN语句,实现了高效批量更新。" 108769049,10124538,IDEA 2020.1.3与FindBugs插件不兼容解决教程,"['java', 'intellij idea', 'plugin']
摘要由CSDN通过智能技术生成

由于数据库设计变更,需要将库里所有的nvarchar(2000)变为nvarchar(1000),以及decimal(8,2)变为decimal(8,4)

刚开始以为字段不多,改了10几个,如下



--修改合同用章类型从int改为varchar(36)
alter table P.a alter column a NVARCHAR(36) null 
alter table .  alter column NVARCHAR(36) null 
alter table .  alter column NVARCHAR(36) null 
alter table .  alter column NVARCHAR(36) null 
alter table .  alter column NVARCHAR(36) null 
alter table .  alter column NVARCHAR(36) null 


用游标实现如下

declare AlterCursor cursor for   --定义
select TABLE_NAME,COLUMN_NAME  from information_schema.COLUMNS
 where TABLE_SCHEMA = 'PropertySecede' and DATA_TYPE = 'nvarchar' and CHARACTER_MAXIMUM_LENGTH = 2000    --查找
 declare @table_name nvarchar(100),
               @column_name nvarchar(100),
  @str_alterTable nvarchar(1000),

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值