如何防止在表中插入相同的Name和NricNo数据?

时间:2013-12-08 15:03:20

标签: c# sql sql-server-2008

ID   | Name | NricNo
1    | Joshua | S1234567A
2    | Joshua | S1234567A

我对这张桌子有问题。 ID是此表的主键,但我需要使Name,NricNo也是唯一的。这意味着表不能具有Name和NricNo的重复值。我在visual studio 2010中这样做,需要帮助。谢谢:)

2 个答案:

答案 0 :(得分:1)

您只需使用此查询更改表格即可。

ALTER TABLE ADD CONSTRAINT UNIQUE(); GO

- 示例: ALTER TABLE MyTable 添加约束AK_MyTable UNIQUE(Name,NricNo); GO

答案 1 :(得分:0)

这完全取决于您进行数据库交互的方式。如果您正在使用实体框架,只要您没有创建具有相同值的新对象,您应该没问题。

无论哪种方式,您都可以通过向数据对象添加ID字段来帮助自己。如果您使用的是ADO.NET,请检查save方法中的ID。如果它不等于默认值(您应该将其默认为-1以保证安全),然后更新,否则插入。保存在try / catch块中,因为在表上使用UNIQUE约束,如果尝试插入与UNIQUE键冲突的记录,则会抛出错误。如果您使用实体框架,那么大部分都将为您处理,但您仍应在save方法中使用try / catch。