Mengapa "Pencarian" diwarnai sebagai fungsi kata cadangan di SQL Server?


14

Dalam SSMS 2208, pengidentifikasi "Pencarian" diwarnai hot pink seolah-olah itu adalah fungsi (warna yang sama seperti, katakanlah, "Daya" atau "Konversi"). Mengapa?

Saya tidak dapat menemukannya di daftar resmi kata-kata yang dipesan . Pencarian di web tampaknya tidak berguna karena ada banyak istilah "pencarian" di luar sana yang tidak ada hubungannya dengan pertanyaan saya.


1
Yang bisa saya pikirkan adalah fungsi SSRS Lookup () ( msdn.microsoft.com/en-us/library/ee210531.aspx ). Pertanyaan bagus. +1
Thomas Stringer

@ Hiu menemukan bagus, tapi saya akan mengharapkan fungsi lain di sana untuk mengikuti aturan yang sama, tetapi mereka tidak menyoroti dalam SSMS, misalnya COUNTDISTINCT, COUNTROWSdan RUNNINGVALUEharus bekerja dengan cara yang sama.
Aaron Bertrand

Jawaban:


14

Pada awalnya saya pikir itu berasal dari Sybase (yang merupakan tempat SQL Server berasal tentunya), yang memiliki fungsi pencarian , tetapi ini terkait dengan PowerBuilder. Dan kemudian saya memeriksa SQL Server 2000 dan tidak menyala merah muda di Query Analyzer ...

masukkan deskripsi gambar di sini

... jika itu adalah warisan dari Sybase saya akan berharap itu ada dalam daftar kata-kata kode warna selama ini. Mungkin, saya kira, bahwa file tata bahasa telah diperbarui dan bahwa itu dihapus "secara tidak sengaja" pada tahun 2000, tapi saya ragu. Ini jauh lebih mungkin karena diwarnai karena terdaftar dalam Layanan Bahasa T-SQL sebagai kata kompatibilitas di masa depan, atau itu dilemparkan ke dalam Layanan Bahasa untuk mengantisipasi digunakan. (Saya menunggu konfirmasi resmi dari ini, dan saya akan membagikan apa yang saya bisa.)

Beberapa contoh menyenangkan lainnya ( saya mengeluhkan beberapa di antaranya di Connect back pada 2008 , tetapi ditutup sebagai Won't Fix) karena penyorotan kata-kata yang tidak pantas yang juga tidak ada dalam daftar yang Anda kutip:

  • Domains menyala hijau
  • Description menyala biru
  • Server menyala biru
  • Instead menyala biru
  • RC2dan RC4menyala biru

masukkan deskripsi gambar di sini

Pada saat itu saya tidak menangkap Lookupatau Insteadcontoh, dan saya yakin ada beberapa yang lain juga. Meskipun saya menduga dokumen yang Anda lihat tidak begitu mutakhir; paling tidak, INSTEADharus ada dalam daftar itu karena ini adalah bagian dari T-SQL sekarang (karena BUKAN pemicu diperkenalkan). Saya yakin ada setidaknya 20 kata kunci lain yang telah ditambahkan untuk SQL Server 2012 tetapi tidak ada dalam daftar itu juga. Cepat pemindaian ada beberapa pengecualian penting yang harus ada: OFFSET, IIF, FORMAT, dll

Contoh lain yang mungkin menarik bagi Anda; coba letakkan kata seperti INSTEADdi string tetapi di barisnya sendiri. Ini berfungsi dengan baik tetapi sepertinya tidak akan:

SELECT 'foo 
INSTEAD
';

masukkan deskripsi gambar di sini

(Yang ini milik bug yang diajukan oleh @JonSeigel .)

Saya mungkin telah mengajukan dan mengomentari beberapa lusin bug lain terhadap penyorotan sintaksis Studio Manajemen ; itu tentu saja tidak sempurna. Saya menghargai bahwa Anda ingin tahu mengapa, tetapi pada akhirnya kami mungkin tidak mengetahuinya. Seperti yang dapat Anda lihat dari banyak item Connect ini, mereka biasanya mengabaikan / menunda, atau memperbaikinya tanpa banyak penjelasan.


2
Saya lupa tentang itu! Saya berlari melintasi kiriman Connect Anda beberapa waktu lalu.
ErikE

Ngomong-ngomong, "INSTEAD" agak masuk akal karena pemicunya bisa INSTEAD OF UPDATE. Tapi itu bukan kata yang dilindungi undang-undang ...
ErikE

@ErikE Saya menyoroti "sebagai gantinya" karena itu adalah kata kunci, hanya saja tidak ada dalam daftar (secercah bukti lain bahwa itu benar-benar ketinggalan zaman).
Aaron Bertrand

"situs" disorot dengan warna biru dan tidak ada dalam daftar kata kunci yang dipesan
Simon D
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.