[SQL ] Update時,如果主鍵不存在,依然成功@@?

看板Database (資料庫)作者 (無傷大雅)時間5年前 (2019/09/18 09:58), 5年前編輯推噓1(102)
留言3則, 2人參與, 5年前最新討論串1/1
資料庫名稱:SQLite 資料庫版本:3 內容/問題描述: 程式碼如下: -- string connectStr; connectStr = ConfigurationManager.AppSettings["conStr"]; SQLiteConnection myConnection = new SQLiteConnection(connectStr); SQLiteCommand sqlCmd = new SQLiteCommand(); sqlCmd.CommandType = System.Data.CommandType.Text; sqlCmd.CommandText = "Update [tblIdentity] Set Name = @Name, ColorCode = @ColorCode where IdentityGUID = @IdentityGUID"; sqlCmd.Connection = myConnection; sqlCmd.Parameters.Add("@IdentityGUID", DbType.String); sqlCmd.Parameters["@IdentityGUID"].Value = paramUpdateIdentity.IdentityGUID; sqlCmd.Parameters.Add("@Name", DbType.String); sqlCmd.Parameters["@Name"].Value = paramUpdateIdentity.Name; sqlCmd.Parameters.Add("@ColorCode", DbType.String); sqlCmd.Parameters["@ColorCode"].Value = paramUpdateIdentity.ColorCode; -- 在測試時嘗試傳入不存在的IdentityGUID,結果沒有報錯... 原本存在於資料庫內的資料也沒有變化,請問本來就這樣嗎@@? 謝謝.. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.128.217 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1568771935.A.4AD.html ※ 編輯: james999 (220.132.128.217 臺灣), 09/18/2019 09:59:28

09/19 10:39, 5年前 , 1F
update不存在的抓影響列數會得到0, 不會報錯
09/19 10:39, 1F

09/19 10:40, 5年前 , 2F
或有特殊需求, 譬如判斷不存在insert, 可改用replace
09/19 10:40, 2F

10/02 01:50, 5年前 , 3F
要取得改變的資料可以用@@rowcount來進行判斷是否成功
10/02 01:50, 3F
文章代碼(AID): #1TWOzVIj (Database)
文章代碼(AID): #1TWOzVIj (Database)