“Arama” SQL Server'da neden işlev ayrılmış bir sözcük olarak renklendirilir?


14

SSMS 2208'de "Arama" tanımlayıcısı, sanki bir işlevmiş gibi sıcak pembe renktedir (örneğin, "Güç" veya "Dönüştür" ile aynı renk). Neden?

Resmi ayrılmış kelimeler listesinde bulamıyorum . Benim soru ile ilgisi olmayan orada "arama" terimleri korkunç bir sürü olduğu gibi web üzerinde aramalar işe yaramaz gibi görünüyor.


1
Aklıma gelen tek şey SSRS Lookup () fonksiyonudur ( msdn.microsoft.com/en-us/library/ee210531.aspx ). İyi soru. +1
Thomas Stringer

Güzel find @Shark, ama diğer fonksiyonlar benzer kurallar vardır takip etmek beklenir, ancak örneğin SSMS, vurgulamak yok COUNTDISTINCT, COUNTROWSve RUNNINGVALUEaynı şekilde çalışması gerekir.
Aaron Bertrand

Yanıtlar:


14

İlk başta , bir arama fonksiyonu olan Sybase'den (SQL Server'ın kaynaklandığı yer) geldiğini düşündüm , ancak bu PowerBuilder ile ilgili. Ve sonra SQL Server 2000'i kontrol ettim ve Query Analyzer'da pembe renkte yanmıyor ...

resim açıklamasını buraya girin

... Sybase'den miras olsaydı, tümüyle renk kodlu kelimeler listesinde olmasını beklerdim. Herhalde, dilbilgisi dosyasının güncellendiğini ve 2000'de "yanlışlıkla" çıkarıldığını düşünüyorum, ancak bundan şüpheliyim. T-SQL Dil Hizmetinde gelecekteki bir uyumluluk sözcüğü olarak listelendiği veya kullanılma beklentisiyle Dil Hizmetine atıldığı için renklendirilmesi çok daha olasıdır. (Bunun resmi olarak onaylanmasını bekliyorum ve elimden gelenleri paylaşacağım.)

Ayrıca alıntı yaptığınız listede olmayan kelimelerin uygunsuz vurgulanmasıyla ilgili bazı eğlenceli örnekler ( 2008'de Connect'te bunlardan birkaçından şikayet ettim , ancak Düzeltilmeyecek şekilde kapatıldı):

  • Domains yeşil yanar
  • Description mavi yanar
  • Server mavi yanar
  • Instead mavi yanar
  • RC2ve RC4mavi renkte yanar

resim açıklamasını buraya girin

O zaman Lookupya da Insteadörnekleri yakalamadım ve eminim başkaları da var. Sanırım baktığınız belgenin her ikisi de olabileceği kadar güncel değil; en azından, INSTEADT-SQL'in bir parçası olduğu için bu listede olmalı (INSTEAD OF tetikleyicileri tanıtıldığından beri). Bahse girerim SQL Server 2012 için eklenen en az 20 anahtar kelime daha vardır, ancak bu listede de yoktur. Hızla tarama olmalıdır bazı dikkate değer istisnalar vardır: OFFSET, IIF, FORMATvb

İlginç bulabileceğiniz başka bir örnek; INSTEADbir dizeye benzer bir kelimeyi kendi satırına koymayı deneyin . Bu iyi çalışıyor ama öyle görünmüyor:

SELECT 'foo 
INSTEAD
';

resim açıklamasını buraya girin

(Bu , @JonSeigel tarafından açılan bir hatanın izniyle .)

Muhtemelen dosyaladım ve Management Studio'nun sözdizimi vurgulamasına karşı birkaç düzine hataya yorum yaptım ; kesinlikle mükemmel değil. Nedenini bilmek istediğini takdir ediyorum ama sonunda bulamayabiliriz. Bu Connect öğelerinin çoğundan görebileceğiniz gibi, genellikle onları görmezden gelir / erteler veya fazla açıklama yapmadan düzeltirler.


2
Bunları unuttum! Connect'inizle bir süre önce karşılaştım.
ErikE

Bu arada, "INSTEAD" mantıklı olabilir çünkü tetikleyiciler olabilir INSTEAD OF UPDATE. Ama bu ayrılmış bir kelime değil ...
ErikE

@ErikE Listede değil , bir anahtar kelime olduğu için "bunun yerine" vurguladım .
Aaron Bertrand

"site" mavi renkle vurgulanır ve ayrılmış anahtar kelimeler listesinde yer almaz
Simon D
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.