7
我有兩個有點大(4 +百萬條記錄)具有相同結構的表,並且它們有大約300k個重複行。我想DELETE
使用DELETE IN
語法的重複行。
多個表達式與IN
我已經使用MERGE
語句(僅在2008或更新版本上提供,因此我無法使用它,因爲我仍在運行2005)和DELETE EXISTS
,但我遇到了一些遇到DELETE IN
無法正常工作。
DELETE IN
我遇到的問題是我的大表有一個複合主鍵,這意味着我只能識別使用所有這些列的唯一行。
在T-SQL中可能有多個表達式作爲IN
子句的參數嗎?喜歡的東西:
DELETE FROM MyBigTable
WHERE ([Column1], [Column2], [Column3]) IN
(SELECT [Column1],
[Column2],
[Column3]
FROM MyBigTable
INTERSECT
SELECT [Column1],
[Column2],
[Column3]
FROM MyOtherBigTable)
這是有效的標準SQL語法(!如果換成那些方括號雙引號),但目前還不支持在SQL服務器,您可以投票[這裏](http://connect.microsoft.com/SQLServer/feedback/details/299231/add-support-for-ansi-standard-row-value-constructors)列入。 – onedaywhen 2012-03-12 14:44:26
如果您希望未來版本的SQL Server支持此語法,請投票評論:http://connect.microsoft.com/SQLServer/feedback/details/299231/add-support-for-ansi-standard-row-價值構造 – 2012-03-12 22:55:12