您的位置:首页 > 数据库

数据库删除数据出现键列信息不足或不正确解决办法

2010-08-25 15:35 501 查看
做机房管理系统的时候,在数据库中没有添加主键约束,在添加了相同的数据以后,发现手动删除的时候,提示键列信息不足或不正确,

无法删除数据.不论是多条选中还是单条选中,都是删除不了.感觉真的是很奇怪.

后来查了一下资料.,主要是因为没有主键,重复的数据数据库无法辨认,导致无法删除.

解决这个的办法一是是由sql在查询分析器中删除,另一个笨的方法是删除表,然后再新建立一个表.

解决不是办法,主要是如何防止这种错误

方法是在MS SQL SERVER表中添加一个自增字段.例如ID

最简单的一种,在“设计表”的模式下编辑要设为自增字段的列属性。自增列的类型值必须是decimal、int、numeric、smallint、bigint 或 tinyint中的一种。在“表示”下拉菜单中选“是”,“标识种子”中填入自增字段的初始值,在“标识地增量”中填入自增量。

把设置标识列的字段,右击属性,选择标的标识列.

Id字段将自动的增加,不用我们在代码中操作,每次默认加一,从一开始.这样就方便了很多.

另一种方法是使用sql语句建表,建立标识列.

CREATE TABLE [表名] (

[ID] [int] IDENTITY (1, 1) NOT NULL ,

[card_ID] [char] (10) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF__表名__card_ID__226AFDCB] DEFAULT ('默认值'),

[studnet_Name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,

[start_Date] [datetime] NULL ,

[start_Time] [datetime] NULL ,

[end_Date] [datetime] NULL ,

[end_Time] [datetime] NULL ,

[use_Money] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,

[free_Money] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,

PRIMARY KEY  CLUSTERED

(

[ID]

)  ON [PRIMARY]

) ON [PRIMARY]

GO


其中IDENTITY(1,1)表示从1开始,增1的标识列.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐