懶人懶到家 批量修改DB中欄位型別

2021-06-06 13:19:46 字數 1154 閱讀 6990

---------這裡舉例 varchar  轉 nvarchar 型別

---------將db中 欄位為varchar(10)的改為nvarchar(20)

---------欄位為varchar(20)的改為nvarchar(40)

declare @tb_name nvarchar(120)

declare @column_name nvarchar(120)

declare @max_len int

declare @sql nvarchar(max)

declare cur_cur cursor for

select b.name, a.name as column_name ,a.max_length from sys.all_columns a join sys.sysobjects b on a.object_id=b.id and b.xtype='u'

join sys.types c on a.user_type_id=c.user_type_id and c.name ='varchar' and c.user_type_id =167 and (a.max_length =10 or a.max_length =20)

open cur_cur

fetch next from cur_cur into @tb_name,@column_name,@max_len

while @@fetch_status =0

begin

if @max_len =10

begin

set @sql=n'alter table '+@tb_name+' alter column'+@column_name+' nvarchar(20)'

endif @max_len=20

begin

set @sql=n'alter table '+@tb_name+' alter column'+@column_name+' nvarchar(40)'

endexec sp_executesql @sql

fetch next from cur_cur into @tb_name,@column_name,@max_len

endclose cur_cur

deallocate cur_cur

hibernate批量修改,批量刪除

在hibernate應用中如何處理批量更新和批量刪除?批量更新是指在乙個事務中更新大批量資料,批量刪除是指在乙個事務中刪除大批量資料。以下程式直接通過hibernate api批量更新customers表中年齡大於零的所有記錄的age欄位 tx session.begintransaction it...

hibernate批量修改,批量刪除

在hibernate應用中如何處理批量更新和批量刪除?批量更新是指在乙個事務中更新大批量資料,批量刪除是指在乙個事務中刪除大批量資料。以下程式直接通過hibernate api批量更新customers表中年齡大於零的所有記錄的age欄位 tx session.begintransaction it...

mybatis批量修改,批量新增

mybatis批量修改 批量新增sql語句 1 單個新增 insert into t user user name,mobile values 2 新增並返回主鍵 keyproperty的屬性是要返回的主鍵欄位的名稱 insert into t user user name,mobile value...