由于数据库设计变更,需要将库里所有的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),