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

更新自定义数据类型的长度后,如果更新表里相关自定义类型的长度
有个自定义的数据类型'T_Prop',原来的长度是6,现在我将他改成25了

sp_configure 'allow updates', 1
RECONFIGURE WITH OVERRIDE

update systypes set length='25' where xtype<>xusertype and name='T_Prop'

sp_configure 'allow updates', 0
RECONFIGURE WITH OVERRIDE

可是数据库里有好多表的字段都用到了这个自定义类型,我在企业管理器里打开表,点设计,发现使用'T_Prop'类型的字段长度还是6,需要手工将这个自定义类型改成varchar,再改回用'T_Prop',长度才变成25。

请问有没有什么方法能用语句在后台将所有表里用到'T_Prop'这个自定义类型的字段的长度统一更新呢?

------解决方案--------------------
-- 找出所有T_Prop类型字段
select * from syscolumns
where xtype in(
select xtype from systypes 
where xtype<>xusertype and name='T_Prop'
)

-- 然后 update syscolumns set length= ............. 你懂的。
------解决方案--------------------
好像是不能同步,当时还以为这个自定义类型很好用呢,帮顶