SORU
13 Mart 2011, Pazar


Ekle SQL Server değilse uygulama var en iyi

Tutan Competitions sonuçlar bir tablo varekip üyesi isimlerve bir yandan onların sıralaması.

Öte yandan bir korumaya ihtiyacım varbenzersiz rakipler isimleri tablo:

CREATE TABLE Competitors (cName nvarchar(64) primary key)

Şimdi 1. tabloda 200.000 sonuçları varrakipler tablo boş olduğundaBunu yapabilirim:

INSERT INTO Competitors SELECT DISTINCT Name FROM CompResults

Ve sorgu sadece takın yaklaşık 11.000 isimler için yaklaşık 5 saniye sürer.

Şimdiye kadar bu göz önünde bulundurun, böylece kritik bir uygulama değilRakipleri masa kesecekgeldiğinde ayda bir, yeni bir yarışma yaklaşık 10.000 satır ile sonuçlanır.

Ama yeni bulgular, yeni VE mevcut rakiplerle eklendiğinde en iyi uygulama nedir?Mevcut rakipler tablo kesecek şekilde istemiyorum

Yeni rakipler için INSERT deyimi sadece yapmak istiyorum ve eğer onlar varsa, hiçbir şey yapmadan.

CEVAP
13 Mart 2011, Pazar


Anlamsal soruyorsun "Ekle Rakipleri çoktan yok":

INSERT Competitors (cName)
SELECT DISTINCT Name
FROM CompResults cr
WHERE
   NOT EXISTS (SELECT * FROM Competitors c
              WHERE cr.Name = c.cName)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • TouchePro

    TouchePro

    27 EYLÜL 2007
  • Tracy Hairston

    Tracy Hairst

    22 Mayıs 2009
  • tunez4you

    tunez4you

    20 EKİM 2008