我有一系列需要写入SQL的数据,我该如何检查SQL中的数据以防止将相同的数据插入到表中?要插入如何防止将重复数据插入到SQL Server表中?
示例数据:
David
James
John
如果第四数据John
再次,我希望系统跳过重复记录(约翰)。
到目前为止,我有:
SqlConnection myCnn = new SqlConnection(cnn);
String _state = "Insert into CamNo1(platename, date, camID, path, filename) OUTPUT INSERTED.platename values(@msg, getdate(), @camID, @path, @filename)";
SqlCommand _Query = new SqlCommand(_state, myCnn);
_Query.Parameters.AddWithValue("@msg", msg);
_Query.Parameters.AddWithValue("@camID", camID);
_Query.Parameters.AddWithValue("@path", imageFile);
_Query.Parameters.AddWithValue("@filename", name);
try
{
myCnn.Open();
string checkname = (string)_Query.ExecuteScalar();
myCnn.Close();
getcheckname = checkname;
Console.WriteLine("OK");
}
catch (Exception)
{
}
我得到的字符串值检查名即最后插入的,我应该怎么做检查数据?
我同意你不应该单独使用约束/索引来处理重复的数据,但很高兴知道你永远不必清理数据,因为你已经有了这个约束。我想你可能有兴趣查看SQL Server 2008添加的'MERGE'函数,它结合了“If Exists Update Else Insert”选项的语法,我相信它们使它更高效。 http://technet.microsoft.com/en-us/library/bb510625.aspx –
是的,肯定知道并使用MERGE语句。可以修改我的答案以包含示例。 – Bert
感谢您给出这样的详细答案,我现在试图:) – KayX