sqlserver 是不是不能直接alert column 已经是主键的字段长度?

iwhp 2011-06-13 11:25:21
sqlserver 是不是不能直接alert column
已经是主键的字段长度?
...全文
214 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
大力水手 2011-06-13
  • 打赏
  • 举报
回复

--查主键名字
exec sp_helpconstraint 表名
--删除主键
alter talbe 表名 drop constraint (复制上面的结果你要修改的那列的主键名)
--最好把另一个表的外键也给取消了.或是那参照表是 级联修改,级联删除的..这样就不用改了
alter talbe 表名 alter column 列名 你的类型和长度 not null
--然后在加主键
alter table 表名 add constraint primary key(列名)
cd731107 2011-06-13
  • 打赏
  • 举报
回复
先取消主键 再修改,但注意修改后的长度应大于修改前的长度,
否则对原主键数据有影响
叶子 2011-06-13
  • 打赏
  • 举报
回复
可以修改的呀,如果修改不了就取消主键,然后修改后再设为主键。


--删除主键
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
--小F-- 2011-06-13
  • 打赏
  • 举报
回复
是的 先取消主键 再修改
GoAwayZ 2011-06-13
  • 打赏
  • 举报
回复
是的,可能引起外键冲突。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧