ile birden çok ifade Ben aynı yapıya sahip iki tane büyük (4+ milyon kayıt) tablo var ve bunlar yaklaşık 300k çoğaltılmış satırları var. DELETE IN
sözdizimini kullanarak DELETE
yinelenen satırları yapmak istiyorum.
IN
Zaten MERGE
ifadesini kullanarak yaptık (sadece 2008 veya daha yeni bulunan, bu yüzden hala 2005 koşuyorum beri bunu kullanamazsınız) ve DELETE EXISTS
, ama bazı içine çalıştırıyorum çalışmak için DELETE IN
almakta sorun.
DELETE IN
ile karşılaştığım sorun, büyük tablonun birleşik bir birincil anahtara sahip olmasıdır; bu, yalnızca tüm sütunları birlikte kullanarak benzersiz satırları tanımlayabildiğim anlamına gelir.
T-SQL'de IN
maddesine parametreler olarak birden fazla ifadeye sahip olmak mümkün mü? Bir şey gibi:
DELETE FROM MyBigTable
WHERE ([Column1], [Column2], [Column3]) IN
(SELECT [Column1],
[Column2],
[Column3]
FROM MyBigTable
INTERSECT
SELECT [Column1],
[Column2],
[Column3]
FROM MyOtherBigTable)
Bu geçerli standart SQL sözdizimi (! Eğer çift tırnak olanlar köşeli parantez yerini ise) ancak henüz SQL desteklenmez edilir Sunucu, dahil olmak üzere [burada] (http://connect.microsoft.com/SQLServer/feedback/details/299231/add-support-for-ansi-standard-row-value-constructors) oy verebilirsiniz. – onedaywhen
Bu sözdizimini SQL Server'ın gelecekteki bir sürümünde desteklemeyi istiyorsanız, lütfen oylama ve yorum yapın: http://connect.microsoft.com/SQLServer/feedback/details/299231/add-support-for-ansi-standard-row- değer kurucular –