如何在sql server中避免将来的重复

如何在sql server中避免将来的重复,sql,asp.net,excel,database,Sql,Asp.net,Excel,Database,今天我问了很多关于这方面的问题,可能是我的问题,我没有澄清我的问题,但我很想改进sql,现在 我正在接受培训,在sql方面我迷失了方向。。。但到目前为止我做得很好,我在asp.net C#中做了一个程序,用户可以将excel文件导入数据库 例如,我的老板希望我避免将来的记录重复 名龄城市 佩德罗12里斯本 丽塔18伦敦 丽塔18伦敦 我怎样才能避免最后一行与第二行相同? 有一个查询可以在插入副本时立即删除该副本?在这种情况下,您不会“立即删除”记录。相反,insert会失败 如果要防止所有列重复

今天我问了很多关于这方面的问题,可能是我的问题,我没有澄清我的问题,但我很想改进sql,现在
我正在接受培训,在sql方面我迷失了方向。。。但到目前为止我做得很好,我在asp.net C#中做了一个程序,用户可以将excel文件导入数据库

例如,我的老板希望我避免将来的记录重复

名龄城市 佩德罗12里斯本 丽塔18伦敦 丽塔18伦敦

我怎样才能避免最后一行与第二行相同? 有一个查询可以在插入副本时立即删除该副本?

在这种情况下,您不会“立即删除”记录。相反,
insert
会失败

如果要防止所有列重复,可以使用唯一约束或唯一索引(前者使用后者实现):

更常见的是,表在列的子集上具有主键和唯一约束/索引。在这种情况下,它可能是
name
——尽管这通常不如某种形式的实际id好。

在这种情况下,您不会“立即删除”记录。相反,
insert
会失败

如果要防止所有列重复,可以使用唯一约束或唯一索引(前者使用后者实现):


更常见的是,表在列的子集上具有主键和唯一约束/索引。在这种情况下,它可能是
name
——尽管这通常不如某种形式的实际id好。

您可以将EXCEPT子句添加到insert语句中,以作为唯一元组的任何字段

INSERT INTO tblDestination(Name, Age, City)
(SELECT Name, Age, City FROM tblSource)
EXCEPT SELECT Name, Age, City FROM tblDestination

您可以将EXCEPT子句添加到insert语句中,以作为唯一元组的任何字段

INSERT INTO tblDestination(Name, Age, City)
(SELECT Name, Age, City FROM tblSource)
EXCEPT SELECT Name, Age, City FROM tblDestination

提示:
Unique
约束。问题:您还想删除当前可能已经存在的重复项吗?提示:
Unique
约束。问题:您还想删除当前可能已经存在的重复项吗?因此我必须在asp.net中插入并将该代码放入sql中?因为我希望用户将其excel文件上传到数据库,如果他想插入另一条记录,则无需更改sql server中的表,这就是语句的作用。在这个名字之后,年龄和城市必须是独一无二的。但是这个解决方案可能会有问题,因为ibn Lisbon在12岁的时候生活得更像Pedros,所以我必须在asp.net中插入代码并将代码放入sql?因为我希望用户将其excel文件上传到数据库,如果他想插入另一条记录,则无需更改sql server中的表,这就是语句的作用。在这个名字之后,年龄和城市必须是独一无二的。但这个解决方案可能会有问题,因为伊本·里斯本在12岁时生活得比佩德罗多。