Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 防止SQL Server数据库中出现重复记录的最佳方法是什么_C#_Sql_Sql Server 2008 - Fatal编程技术网

C# 防止SQL Server数据库中出现重复记录的最佳方法是什么

C# 防止SQL Server数据库中出现重复记录的最佳方法是什么,c#,sql,sql-server-2008,C#,Sql,Sql Server 2008,防止SQL Server数据库中出现重复记录的最佳方法是什么?使用触发器?使用唯一约束?对表中的一列或多列使用唯一约束。 例如: 修改现有表格如下 ALTER TABLE Persons ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName) 如果使用前端应用程序填充数据库中的表。在插入数据库之前,从数据库上的应用程序执行验证选择查询以检查重复项。使用约束将通过引发异常来防止重复 注意:上面的示例是SQL SERVER、Oracle、ms acces

防止SQL Server数据库中出现重复记录的最佳方法是什么?使用触发器?使用唯一约束?

对表中的一列或多列使用唯一约束。 例如:

修改现有表格如下

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
如果使用前端应用程序填充数据库中的表。在插入数据库之前,从数据库上的应用程序执行验证选择查询以检查重复项。使用约束将通过引发异常来防止重复

注意:上面的示例是SQL SERVER、Oracle、ms access


有关更深入的解决方案,请参见对表中的一列或多列使用唯一约束。 例如:

修改现有表格如下

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
如果使用前端应用程序填充数据库中的表。在插入数据库之前,从数据库上的应用程序执行验证选择查询以检查重复项。使用约束将通过引发异常来防止重复

注意:上面的示例是SQL SERVER、Oracle、ms access


要获得更深入的解决方案,请参见

,前提是您不希望从唯一约束抛出错误,并且希望数据库接收重复数据,但不插入任何内容。您可以查看merge语句


若不希望从唯一约束抛出错误,也希望数据库接收重复数据,但不插入任何内容。您可以查看merge语句


使用唯一索引或约束,如果用谷歌搜索,你将得到成千上万的答案!一般来说,我建议使用专门为特定用途设计的特性,而不是使用触发器。只有在其他DRI功能无法实现您的总体目标时才使用触发器。为什么会被否决?这对我来说似乎是个公平的问题。我用谷歌搜索了一下,这篇文章就出现了。这有利于堆栈溢出,对吗?@Shana:如果答案有帮助,请向上投票或将其标记为已回答。使用唯一索引或约束。如果谷歌搜索,您将获得数千个答案!一般来说,我建议使用专门为特定用途设计的特性,而不是使用触发器。只有在其他DRI功能无法实现您的总体目标时才使用触发器。为什么会被否决?这对我来说似乎是个公平的问题。我用谷歌搜索了一下,这篇文章就出现了。这有利于堆栈溢出,对吗?@Shana:如果答案有帮助,请向上投票或将其标记为已回答。@Chukwu你能给我举个例子吗。Thanks@Chukwu你能给我举个例子吗。谢谢