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

  • Amazon Web Services

    Amazon Web S

    8 NİSAN 2009
  • dope2111

    dope2111

    29 HAZİRAN 2009
  • olinerd

    olinerd

    23 AĞUSTOS 2007