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

  • Besnik Ibrahimi

    Besnik Ibrah

    27 Mart 2010
  • Jay Will

    Jay Will

    19 NİSAN 2006
  • Krumme1996

    Krumme1996

    21 EYLÜL 2009