关于修改一个表的问题

Jlmo 2003-12-11 05:06:34
我想在我建立的一个person表中修改一列PASSWD信息
具体如下
PSAAWD char(6) 可空 我想把他修改成不可空的
出现如下错误:
'Person' 表
- 不能修改表。
ODBC 错误: [Microsoft][ODBC SQL Server Driver][SQL Server]无法将 NULL 值插入列 'PASSWD',表 'mmx.dbo.Tmp_Person';该列不允许空值。INSERT 失败。
[Microsoft][ODBC SQL Server Driver][SQL Server]语句已终止。
请指教谢谢

...全文
66 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2003-12-11
  • 打赏
  • 举报
回复
也可以用下面的方法:

select distinct * into #t from 你的表
truncate table 你的表
insert into 你的表 select * form #t
drop table #t
zjcxc 元老 2003-12-11
  • 打赏
  • 举报
回复
在表中增加一个标识字段,再删除就行了.
dlpseeyou 2003-12-11
  • 打赏
  • 举报
回复
打开表看看是否你的表中此字段已经有了为null的记录吧
Jlmo 2003-12-11
  • 打赏
  • 举报
回复
我能不能不用sql语句进行删除
我在企业管理器中通过打开表的方式可以进行操作吗?
我可以删除记录不相同的列,就是无法删除相同的列?
请指教
CrazyFor 2003-12-11
  • 打赏
  • 举报
回复
你在MMC中删除或更新时,因为它要去找能确定你要删除或更新的记录的条件,

就象
delect table where aa=xx and bb=YY
但是这个条件在表中有两条记录,所以系统认为你的条件不充分,所以它不知道应该把两条中的哪一条删除,所以出现上面的提示。
TRY:
select * into #temp from table where ........ --条件选出那两条
delete table where.......

insert into table
select top1 * from #temp

OR
在MMC中一直相下翻页,只到最后一页,再找出你要删除或更新的记录,再删除或更新.
Jlmo 2003-12-11
  • 打赏
  • 举报
回复
ok
以上问题解决
我现在还有一个问题
现在我的penson表里面有好多相同的记录
想删掉提示说什么---删除键列信息不正确或信息不足.更新影响到过多行.
就是有太多相同的记录了,怎么解决?谢谢
zjcxc 元老 2003-12-11
  • 打赏
  • 举报
回复
--先
update Person set [PSAAWD]='' where [PSAAWD] is null

--再:
alter table Person alter column [PSAAWD] char(6) not null
lynx1111 2003-12-11
  • 打赏
  • 举报
回复
里面已经有值!你把它改成不可空的,那么那些字段该填什么呢?
设置一个默认值,或者先把空值给填上或删掉

34,838

社区成员

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

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