添加列和主键的问题急,请大家帮忙

emlongxp 2004-10-15 10:39:28
用alter table 为已创建好的表添加列,表中只有0行一列且为空,如何写能添加一新列并设为主键呢?
alter table testtable add newColumn varchar (20) primary key 出错
提示 alter table 只允许添加可包含空值或定义了defcult的列,因为newcolumn不能包含空值且未指定defcult的定义,所以无法将此列添加到testtable中
我如何写才能添加这一主键列啊?我不想设置defcult,因为要加入的数据要整行的由用户添加而我能做的是建立一个空表,让用户倒入数据!谢谢大家,分不够可以加!
...全文
136 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
pbsql 2004-10-15
  • 打赏
  • 举报
回复
真的是那样,那分几步走好了:
alter table testtable add newcolumn varchar (20)
alter table testtable alter column newcolumn varchar (20) not null
go
alter table testtable add constraint [pk_testtable] primary key ([newcolumn]) on [primary]
go
emlongxp 2004-10-15
  • 打赏
  • 举报
回复
not null 不可以,我试验过了!
zjcxc 元老 2004-10-15
  • 打赏
  • 举报
回复
to pbsql(风云)

不支持的,你测试一下.
sunshareforever 2004-10-15
  • 打赏
  • 举报
回复
alter table add column1 varchar(20) not null default '' primary key
pbsql 2004-10-15
  • 打赏
  • 举报
回复
你不必定义default,只需定义成 not null 就可以了
zjcxc 元老 2004-10-15
  • 打赏
  • 举报
回复
企业管理器中的操作是删除原表,然后重建的方法来实现的.
lanshen 2004-10-15
  • 打赏
  • 举报
回复
支持楼上
shuiniu 2004-10-15
  • 打赏
  • 举报
回复
t-sql是无法实现的,除非直接用企业管理器操作.
zjcxc 元老 2004-10-15
  • 打赏
  • 举报
回复
default只是在你不指定该字段的值的时候,自动赋的值,不影响你的任何操作.
zjcxc 元老 2004-10-15
  • 打赏
  • 举报
回复
alter table testtable add newColumn varchar (20) not null default '' primary key
pbsql 2004-10-15
  • 打赏
  • 举报
回复
alter table testtable add newcolumn varchar (20) not null
go
alter table testtable add constraint [pk_testtable] primary key ([newcolumn]) on [primary]
go
emlongxp 2004-10-15
  • 打赏
  • 举报
回复
算了还是用default 吧,谢谢大家

34,873

社区成员

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

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