我有一個臨時表,並希望插入數據到Main
表,所以我想要檢查時插入數據從分段到主表,如果存在然後更新記錄else插入作爲新紀錄。這裏的問題是既是分期以及主表沒有任何關鍵列根據我可以比較值。如果存在更新else插入記錄在SQL Server 2008表
是否有可能不需要在兩個表上具有主鍵即主鍵?如果是的話,請告訴我如何。
在此先感謝。
我有一個臨時表,並希望插入數據到Main
表,所以我想要檢查時插入數據從分段到主表,如果存在然後更新記錄else插入作爲新紀錄。這裏的問題是既是分期以及主表沒有任何關鍵列根據我可以比較值。如果存在更新else插入記錄在SQL Server 2008表
是否有可能不需要在兩個表上具有主鍵即主鍵?如果是的話,請告訴我如何。
在此先感謝。
如果在一行中沒有唯一鍵或數據集來定義唯一性,那麼沒有。
該組數據可以是每列中的數據的組合,創建將提供唯一性的部分的總和;但是,如果不暴露於您的數據,您需要做出該決定。
你寫的WHERE子句,以包括讓你的記錄是唯一的(即是決定該記錄是否是新的或應進行更新的字段。)
看看這篇文章的所有字段(http://blogs.msdn.com/b/miah/archive/2008/02/17/sql-if-exists-update-else-insert.aspx )提示如何構建它。
如果您使用SQL Server 2008r2,您也可以使用MERGE語句 - 我沒有在沒有密鑰的表上試過它,所以我不知道它是否適用於您。
您的意思是這些表上沒有創建主鍵,或者沒有「邏輯」主鍵來標識每一行? – Lamak
我會建議在所有表格上爲這種情況設置唯一的標識符。沒有它們,你就無法安全,精確地進行檢查。 – CSharpened
如果您沒有任何可用於比較的列,您將如何更新或插入? –