給資料表加上默認值

 

-- 給所有的欄位加上默認值
Declare   @TableName   varchar ( 40 )    -- 定義存儲數據表名稱
            , @ColName   varchar ( 40 )      -- 定義存儲字段名
            , @ColType   varchar ( 20 )        -- 定義存儲字段類型
Declare  DS_Cur  Cursor   for
select  SysObjects.name TableName
     
--  ,syscolumns.colorder
      ,syscolumns.name ColName 
      ,
Case  systypes.name 
            
when   ' int '   Then   ' int '
            
when   ' tinyint '   Then   ' tinyint '
            
when   ' char '   Then   ' C '
            
when   ' varchar '   Then   ' VC '
            
when   ' numeric '   Then   ' N '
        
End   coltype
  
From  SysObjects SysObjects
       
Join  syscolumns syscolumns
            
On  SysObjects.id  =  syscolumns.id
       
Left   Outer   Join  sysproperties sysproperties
            
On  syscolumns.id  =  sysproperties.id
           
And  syscolumns.colorder  =  sysproperties.smallid
       
Join  systypes systypes
            
On  syscolumns.xtype  =  systypes.xtype
 
Where  SysObjects.status  >   0
   
And  SysObjects.xtype  =   ' U '
   
And   Not  (SysObjects.name  like   ' %Log ' )
   
order   by   SysObjects.Name
            ,syscolumns.colorder
open  DS_Cur    while   1 =   1
Begin
   
       
fetch   next   from  DS_Cur 
                                 
into   @tableName
                                        ,
@ColName
                                        ,
@ColType
          
IF   NOT  ( @@FETCH_STATUS   =   0 )
            
Break

                         
if ( @ColType   =   ' VC ' )
                        
Begin
               
ALTER   TABLE   ' [dbo].[ '   +   @tableName   +   ' ] '   ADD  
                        
CONSTRAINT   [ 'DF_'+@tableName+'_'+@ColName ]   DEFAULT  ( '' FOR   [ @ColName ]
                        
end
                        
                     
if ( @ColType   =   ' C '  )
                        
Begin
               
ALTER   TABLE   [ dbo ] . [ @tableName ]   ADD  
                        
CONSTRAINT   [ 'DF_'+@tableName+'_'+@ColName ]   DEFAULT  ( '' FOR   [ @ColName ]
                        
end

                         
if ( @ColType   =   ' int ' )
                        
Begin
               
ALTER   TABLE   [ dbo ] . [ @tableName ]   ADD  
                        
CONSTRAINT   [ 'DF_'+@tableName+'_'+@ColName ]   DEFAULT  ( 0 FOR   [ @ColName ]
                        
end

                        
if ( @ColType   =   ' tinyint ' )
                        
Begin
               
ALTER   TABLE   [ dbo ] . [ @tableName ]   ADD  
                        
CONSTRAINT   [ 'DF_'+@tableName+'_'+@ColName ]   DEFAULT  ( 0 FOR   [ @ColName ]
                        
end
                        
                        
if ( @ColType   =   ' N ' )
                        
Begin
               
ALTER   TABLE   [ dbo ] . [ @tableName ]   ADD  
                        
CONSTRAINT   [ 'DF_'+@tableName+'_'+@ColName ]   DEFAULT  ( 0 FOR   [ @ColName ]
                        
end
end
Close  DS_Cur
Deallocate  DS_Cur

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值