sqlserver 是不是不能直接alert column 已经是主键的字段长度?
sqlserver 是不是不能直接alert column
已经是主键的字段长度?
已经是主键的字段长度?
作者: iwhp 发布时间: 2011-06-13
是的,可能引起外键冲突。
作者: zy112429 发布时间: 2011-06-13
是的 先取消主键 再修改
作者: fredrickhu 发布时间: 2011-06-13
可以修改的呀,如果修改不了就取消主键,然后修改后再设为主键。
SQL code
SQL code
--删除主键 alter table 你的表 drop constraint 主键名(如:PK_XXX) --增加主键 alter table 你的表 add constraint 主键名 primary key (列名) ALTER TABLE 你的表 ADD Constraint PK_你的表 Primary key(列名) --修改字段类型 ALTER TABLE 你的表 ALTER COLUMN 列名 你的类型 [not null] --设置字段为“不允许空值”或曰设置“列设置为非空列” ALTER TABLE 你的表 ALTER COLUMN 列名 列类型 not null 如:alter table aa alter column id int not null
作者: maco_wang 发布时间: 2011-06-13
先取消主键 再修改,但注意修改后的长度应大于修改前的长度,
否则对原主键数据有影响
否则对原主键数据有影响
作者: cd731107 发布时间: 2011-06-13
SQL code
--查主键名字 exec sp_helpconstraint 表名 --删除主键 alter talbe 表名 drop constraint (复制上面的结果你要修改的那列的主键名) --最好把另一个表的外键也给取消了.或是那参照表是 级联修改,级联删除的..这样就不用改了 alter talbe 表名 alter column 列名 你的类型和长度 not null --然后在加主键 alter table 表名 add constraint primary key(列名)
作者: public0011 发布时间: 2011-06-13