SORU
22 Temmuz 2010, PERŞEMBE


TAKIN birleştirerek ve/CTE İLE

Çok karmaşık bir CTE var ve fiziksel bir tabloya sonucu eklemek istiyorum.

Aşağıdaki geçerli mi?

INSERT INTO dbo.prf_BatchItemAdditionalAPartyNos 
(
    BatchID,
    AccountNo,
    APartyNo,
    SourceRowID
)       
WITH tab (
  -- some query
)    
SELECT * FROM tab

Beni yeniden sağlayacak bu CTE oluşturmak için bir işlevi kullanarak düşünüyorum. Herhangi bir düşünce?

CEVAP
22 Temmuz 2010, PERŞEMBE


CTE ilk koymak ve EKLEMEK birleştirmek select deyimi ile yapmanız gerekir. Ayrıca, "" CTE adı aşağıdaki anahtar sözcüğü isteğe bağlı değil GİBİ:

WITH tab AS (
    bla bla
)
INSERT INTO dbo.prf_BatchItemAdditionalAPartyNos (
BatchID,
AccountNo,
APartyNo,
SourceRowID
)  
SELECT * FROM tab

Lütfen kodu CTE tam olarak dört alan döneceği ve bu alanlar INSERT deyiminde belirtilen düzen ve uyumu olduğunu varsayar unutmayın. Eğer durum böyle değilse, "SEÇİN *" gerektiren alanlar belirli bir seçin. değiştir sadece

Bir fonksiyon kullanarak ilgili sorunuz için, ben söyleyebilirim olarak "duruma göre değişir". Eğer hız fonksiyonu ile kullanıldığında kabul edilebilir performans nedenler yüzünden, ve bir tablodaki veri yerleştirme, işlev bir seçenek olabileceğini düşünüyorum. Öte yandan, kullanman gerekiyorsa sonuç CTE birkaç farklı sorgular ve hızı zaten bir sorun, ben gider tablosu (ya normal ya da geçici).

WITH common_table_expression (Transact-SQL)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GoProTutorials

    GoProTutoria

    18 NİSAN 2011
  • SavageLuxxxGaming - Daily NBA 2K15 & NBA Live 15 Enjoy And Subscribe!

    SavageLuxxxG

    11 Ocak 2013
  • Shaollin Animes

    Shaollin Ani

    19 HAZİRAN 2013