我有一個問題,其中整個表值的數據被刪除。它是一個子表,它包含它自己的主鍵,它的父鍵和一些其他數據的外鍵。使用外鍵約束生成插入語句
我嘗試使用合併,從存儲過程中我發現這裏產生: https://github.com/readyroll/generate-sql-merge
這將生成您的整個表的巨型合併聲明。這工作好了一段時間,但我從那以後發現父表中的記錄已經被刪除,並且Merge處理得不好。
我試過重寫它,但是我陷入困境,感覺就像別人以前會做的事情。
我真正喜歡的是生成的INSERT語句1000的與是否存在上述每一個說
IF NOT EXISTS (select PK from ChildTable where ID = <about to be inserted>) AND EXISTS (select FK from ParentTable where ID = <about to be inserted>)
INSERT RECORD
OUTPUT PK TO LOG TABLE
即使世界約20,000條記錄,以便其真正的東西,我不希望有辦法手動完成,並且由於刪除事件在幾個月內發生了幾次,我需要從幾個不同的數據庫中生成數據以重新創建整個圖片。
我想將插入的ID保留在日誌表中,以便我可以告訴插入的內容,因此可以出於任何原因將數據恢復到規定狀態。
我的方法的任何意見也是受歡迎的。
謝謝:)
你不知道該怎麼做?生成INSERT語句只是簡單的字符串構建。有什麼理由比這更復雜嗎? –
它之所以如此複雜的原因是因爲我產生的插入體積龐大。 20000插入與相應的IFs等是粉碎我的電腦,SQL不會處理它。 – stugray