程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 修改SQL Server數據庫相關字段的默認值

修改SQL Server數據庫相關字段的默認值

編輯:關於MYSQL數據庫

       原來的數據庫有好多類型的數據默認值都是 null 值,為以後在實際開發過程中帶了好多不變。這個null其實也有好處,我想可以節省數據庫的空間,在新增數據的時候還可以提高速度。不過還是應領導要求寫了下面的代碼。在CSDN的大俠幫助下完成的。

      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

      ) t

      where 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 '

      end

      else if @xtype = 'varchar'

      begin

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

      end

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

      exec(@sql)

      set @i = @i + 1

      end

      小記

      注冊好以後基本就沒有來過,以後會把自己學習的點點都記在這邊。記錄自己成長。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved