批量修改系統中int,varchar欄位的預設值

2021-04-30 23:58:33 字數 1529 閱讀 6857

declare @t table(id int identity(1,1),tbname varchar(256), colname varchar(256),xtype varchar(20))

insert into @t

select a.name,b.name ,c.name

from sysobjects a

inner join syscolumns  b on a.id=b.id

inner join systypes  c on b.xusertype = c.xusertype 

where a.xtype='u'

and c.name in ('varchar','int')

and b.status<>0x80  --去掉自增列  

and not exists  --過濾掉原來已存在預設值的列

(select 1

from

(select

(select name from sysobjects where id=c.id) 表名,

(select name from syscolumns where cdefault=a.id) 欄位名

from  sysobjects b,syscolumns c,syscomments a

where b.xtype='d'

and a.id=b.id

and b.parent_obj=c.id

and a.colid=c.colid

) twhere a.name=t.表名

and b.name=t.欄位名)

--select * from @t

declare @i int

set @i=1

declare @tbname varchar(256),@colname varchar(256),@xtype varchar(20),@sql nvarchar(4000)

while @i <= (select max(id) from @t)

begin

select @tbname=tbname,@colname=colname,@xtype = xtype from @t where id=@i

set @sql = 'alter table ['+@tbname+'] add constraint ' +  'df_' + replace(@tbname,'-','') +'_'+ replace(@colname,'-','') + ' default '

if @xtype = 'int'

begin

set @sql = @sql + ' 0 '

endelse if @xtype = 'varchar'

begin

set @sql = @sql + ''''''

endset @sql = @sql + ' for [' + @colname +']'

exec(@sql)

set @i = @i + 1

end

HBase中批量修改

先隨便寫寫.做個隨筆記錄 使用rest連線操作hbase.是微軟提供的 microsoft.hbase.client 類庫.版本是0.4.1.0 一直知道 client.storecellsasync 方法是可以新增也可以覆蓋已有資料.其實不是這麼簡單.機緣巧合下測試發現修改一次只能修改100條資料...

hibernate批量修改,批量刪除

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

hibernate批量修改,批量刪除

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