我有一系列需要寫入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