我在下面的OPENQUERY語句中收到錯誤,我試圖從SQL Server中針對MySql數據庫執行該錯誤。更新OPENQUERY失敗
UPDATE OPENQUERY(MYWPDB, 'SELECT total FROM wp_tt WHERE id = 112121') SET total = 1
錯誤是「鍵列信息不足或不正確,太多行受更新影響」。
該聲明應該將'total'字段更新爲'1'的值。它是一個整數字段,'id'是表上的主鍵。我正在使用SQL Server 2000.
我在下面的OPENQUERY語句中收到錯誤,我試圖從SQL Server中針對MySql數據庫執行該錯誤。更新OPENQUERY失敗
UPDATE OPENQUERY(MYWPDB, 'SELECT total FROM wp_tt WHERE id = 112121') SET total = 1
錯誤是「鍵列信息不足或不正確,太多行受更新影響」。
該聲明應該將'total'字段更新爲'1'的值。它是一個整數字段,'id'是表上的主鍵。我正在使用SQL Server 2000.
原因是查詢沒有問題。我試圖在存儲過程中的遊標操作中執行語句。我在遊標操作之外測試了它,並且它處理得很好。
但是,由於我仍然需要它在光標內工作,所以我不得不繼續挖掘,最後發現四部分語法會起到訣竅的作用。所以查詢變成了:
UPDATE MYWPDB...wp_tt SET total = 1 WHERE id = 112121
我對更新iSeries的openquery有同樣的問題。我的公開查詢也在光標內。 解決方法是在選擇中包含關鍵列。
所以你的情況會是這樣的:
UPDATE OPENQUERY(MYWPDB, 'SELECT key1, key2, total FROM wp_tt WHERE id = 112121') SET total = 1
我不認爲你需要最後的「WHERE」條款。相反,你只需要在原始的openquery中選擇id。我有同樣的問題,並遵循你的例子,但後加入id的選擇,它是工作,即使沒有最後的「WHERE」。 – Dan 2016-01-13 20:41:09