網(wǎng)(LieHuo.Net)教程 昨天通過查詢分析器批量刪除垃圾用戶的時候,結果把用戶表給清空了,上百萬條記錄沒了。經(jīng)過半小時的數(shù)據(jù)庫還原,問題解決。用戶數(shù)據(jù)都完全恢復。但是那條語句為什么把用戶表清空了,令我非常費解,經(jīng)過分析找出了原因,特別給大家分享。
昨日誤刪數(shù)據(jù)的語句是這樣的:
1.delete Table_1 where UserID in (select [ID] from Table_2)
問題是Table_2沒有[ID]字段。結果Table_1的數(shù)據(jù)都清空了。
于是我做了下面的測試
1.select [ID] from Table_2
報錯 列名 ‘ID’ 無效。
1.select top 10 * from Table_1 where UserID in (select [ID] from Table_2)
列出了10條記錄。
再測試,把[ID]修改為[xxxxx]
1.select top 10 * from Table_1 where UserID in (select [xxxxx] from Table_2)
報錯 列名 ‘xxxxx’ 無效。
錯誤原因分析:當Table2里沒有ID,用的就是Table1的ID