日期:2014-05-18  浏览次数:20572 次

怎么样用T-SQL实现更改数据库内所有表的时间字段的默认值为getdate()?
我现在用数据库导入了一个库,但是倒过来的库里面所有的默认值全部掉了,包括主键设置,自增型数据设置都没有,现在得一个个添加。我想知道用t-sql怎么样批量更改数据库中所有datetime型的字段默认值为getdate(),请高手赐教!

------解决方案--------------------
最新


SQL code
select 'ALTER TABLE '+a.name +' ADD CONSTRAINT DE_'+a.name+'_'+b.name +
' default getdate() for '+ b.name + ' 
go '
from sysobjects a
left join syscolumns b
on a.id= b.id
where b.type = 61 and a.type = 'U'

------解决方案--------------------
你试试我这个 :
select 'ALTER TABLE '+a.name +' ADD CONSTRAINT DE_'+a.name+'_'+b.name +
' default getdate() for '+ b.name + ' 
go '

from sysobjects a
,syscolumns b
where b.type = 111 and
 a.type = 'U'
and b.id= a.id

happyflystone 的TYPR是61 2000应该是111 

ALTER TABLE as10 ADD CONSTRAINT DE_as10_asssssss default getdate() for asssssss go 
ALTER TABLE trc20070913 ADD CONSTRAINT DE_trc20070913_StartTime default getdate() for StartTime go 
ALTER TABLE trc ADD CONSTRAINT DE_trc_StartTime default getdate() for StartTime go 
ALTER TABLE Table2 ADD CONSTRAINT DE_Table2_asd default getdate() for asd go 
ALTER TABLE table1 ADD CONSTRAINT DE_table1_clo2 default getdate() for clo2 go 
ALTER TABLE as4 ADD CONSTRAINT DE_as4_clo2 default getdate() for clo2 go 
ALTER TABLE as5 ADD CONSTRAINT DE_as5_clo2 default getdate() for clo2 go 
ALTER TABLE test1 ADD CONSTRAINT DE_test1_clo2 default getdate() for clo2 go 


------解决方案--------------------
楼上正解,在这样做之前觉得还是应该判断下是不是默认值掉了还是默认规则掉了

要不上面的会出错