如何刪除有關連的另一個表中的記錄

內容是論壇帖子,我把帖子寫在一個表,回覆寫在另外一個表。我現在想批量刪除所有帖子並且同時刪除所有帖子的回覆,怎麼寫SQL語句?內容是論壇帖子 ----所在的表作爲主表
回覆寫在另外一個表 -----該表作爲從表,關聯主表ID

當刪除時,先去從表刪除相關記錄,再刪除主表記錄就可以了。
這很容易理解。首先,你取出1到500範圍之內的一個隨機數(假設500就是數據庫內記錄的總數)。然後,你遍歷每一記錄來測試ID 的值、檢查其是否匹配RNumber。滿足條件的話就執行由THEN 關鍵字開始的那一塊代碼。假如你的RNumber 等於495,那麼要循環一遍數據庫花的時間可就長了。雖然500這個數字看起來大了些,但相比更爲穩固的企業解決方案這還是個小型數據庫了,後者通常在一個數據庫內就包含了成千上萬條記錄。這時候不就死定了? 
  採用SQL,你就可以很快地找出準確的記錄並且打開一個只包含該記錄的recordset,
不必寫出RNumber 和ID,你只需要檢查匹配情況即可。只要你對以上代碼的工作滿意,你自可按需操作“隨機”記錄。Recordset沒有包含其他內容,因此你很快就能找到你需要的記錄這樣就大大降低了處理時間。 
再談隨機數 
  現在你下定決心要榨乾Random 函數的最後一滴油,那麼你可能會一次取出多條隨機記錄或者想採用一定隨機範圍內的記錄。把上面的標準Random 示例擴展一下就可以用SQL應對上面兩種情況了。 
  爲了取出幾條隨機選擇的記錄並存放在同一recordset內,你可以存儲三個隨機數,然後查詢數據庫獲得匹配這些數字的記錄: 
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3 
 
  假如你想選出10條記錄(也許是每次頁面裝載時的10條鏈接的列表),你可以用BETWEEN 或者數學等式選出第一條記錄和適當數量的遞增記錄。這一操作可以通過好幾種方式來完成,但是 SELECT 語句只顯示一種可能(這裏的ID 是自動生成的號碼)
該方法用於執行SQL語句。根據SQL語句執行後是否返回記錄集,該方法的使用格式分爲以下兩種:
    1.執行SQL查詢語句時,將返回查詢得到的記錄集。用法爲:
    Set 對象變量名=連接對象.Execute("SQL 查詢語言")
   Execute方法調用後,會自動創建記錄集對象,並將查詢結果存儲在該記錄對象中,通過Set方法,將記錄集賦給指定的對象保存,以後對象變量就代表了該記錄集對象。

    2.執行SQL的操作性語言時,沒有記錄集的返回。此時用法爲:
    連接對象.Execute "SQL 操作性語句" [, RecordAffected][, Option]
      ·RecordAffected 爲可選項,此出可放置一個變量,SQL語句執行後,所生效的記錄數會自動保存到該變量中。通過訪問該變量,就可知道SQL語句隊多少條記錄進行了操作。
      ·Option 可選項,該參數的取值通常爲adCMDText,它用於告訴ADO,應該將Execute方法之後的第一個字符解釋爲命令文本。通過指定該參數,可使執行更高效。
這三個方法是連接對象提供的用於事務處理的方法。BeginTrans用於開始一個事物;RollbackTrans用於回滾事務;CommitTrans用於提交所有的事務處理結果,即確認事務的處理。
  事務處理可以將一組操作視爲一個整體,只有全部語句都成功執行後,事務處理纔算成功;若其中有一個語句執行失敗,則整個處理就算失敗,並恢復到處裏前的狀態。
  BeginTrans和CommitTrans用於標記事務的開始和結束,在這兩個之間的語句,就是作爲事務處理的語句。判斷事務處理是否成功,可通過連接對象的Error集合來實現,若Error集合的成員個數不爲0,則說明有錯誤發生,事務處理失敗。Error集合中的每一個Error對象,代表一個錯誤信息。
既然已經開了 說明有外網的訪問需求,隱藏端口是怕別人通過udp枚舉你的sqlserver服務端口,不過你開的應該是tcp沒關係,主要就是提防注入
一是改sql默認tcp1433爲其它陌生端口,或者在服務端配置工具中直接隱藏1433端口

二是修改sa爲複雜密碼或者禁用,去掉xp_cmdshell等等,連接帳號最好是單獨受限帳號

如以上都不能保證安全,直接配vpn連接就行,

很少有人這麼直接發佈sql到外網,要發佈也是遠程桌面之類,sql可沒外網傳輸的優化處理,不像遠程桌還是圖像什麼的,不超時,不掉包,不穩定纔是假
來源:nba直播


 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章