0
我正在嘗試在我們的SQL服務器上執行批量更新,這很容易在我們的情況下由以下代碼完成。一次更新SQL行一行
update patient set security_level = '2'
where security_level = '1'
的問題是我們的SQL服務器連接到如果超過一個排在同一時間更新發送交易國家和歡笑服務器鎖定了一個歡樂的服務器,所以我希望有一種方法一次更新一行。爲了防止我們的軟件供應商有幾個觸發器到位。一段代碼的觸發器是
IF (@numrows > 1)
BEGIN
IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION
SELECT @errmsg = OBJECT_NAME(@@PROCID) + ' : more than one row is updated in table Patient'
RAISERROR(@errmsg,16,21)
RETURN
END
如果我要禁用3觸發器它會打破其他的事情。感謝您的任何建議或想法。
Msg 102,Level 15,State 1,Line 4 '<'附近語法不正確。 Msg 102,Level 15,State 1,Line 9 '<'附近的語法不正確。 Msg 102,Level 15,State 1,Line 11 「<」附近的語法不正確。 消息137,級別15,狀態1,行13 必須聲明標量變量「@finish_value」。 消息137,級別15,狀態2,行15 必須聲明標量變量「@ start_value」。 Msg 102,Level 15,State 1,Line 18 「<」附近的語法不正確。 消息102,級別15,狀態1,行25 '<'附近的語法不正確。 消息137,級別15,狀態2,行28 必須聲明標量變量「@ start_value」。 –
我收到上面的錯誤。我有點頭大,所以不想猜錯。感謝您的幫助。 –
我的錯。我不知道病人列表中的關鍵列。我會指出<在這裏聲明所有列是你的表的關鍵>,與@相同<在這裏聲明所有對你的表是關鍵的列,但是這次是變量> 。您必須用正確的值替換所有<..>部分。如果你在這裏報告鍵列名稱和類型我完成查詢。 – GigiS