如何批量修改表字段 把允许为空修改为 不允许为空
有6张表,
每张表都有超过50个字段,
请教如何批量把他们设置为 不允许为空。
[最优解释]
本帖最后由 roy_88 于 2011-11-21 18:42:55 编辑 更新方法,如果字段已存在null,需要更新后再改
DECLARE @s NVARCHAR(4000)
SET @s=''
SELECT
@s=@s+'Alter TABLE [表名] alter column '+Name+' '+TYPE_NAME(user_type_id)+case
when user_type_id in(34,35,36,48,52,56,58,59,60,61,62,98,99,104,122,127,189,241,256,241) then ''
when user_type_id in(106,108) then '('+rtrim(Precision)+','+rtrim(Scale)+')'
when user_type_id in (231,239) then case when max_length=-1 then '(max)' else '('+rtrim(max_length/2)+')' end
when max_length=-1 then '(Max)'
else '('+rtrim(max_length)+')' END+' not null;'
FROM sys.columns
WHERE is_nullable=0 AND object_id=object_id('表名')
EXEC(@s)