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

  • уσ ρℓz sυв ιℓℓ sυв вαcқ

    уσ ρℓz

    14 EKİM 2010
  • natescamp

    natescamp

    30 NİSAN 2009
  • segtlim

    segtlim

    21 EKİM 2008