Tại sao Tra cứu Tra cứu được tô màu như một từ dành riêng cho chức năng trong SQL Server?


14

Trong SSMS 2208, mã định danh "Tra cứu" có màu hồng nóng như thể đó là một chức năng (cùng màu với "Power" hoặc "Convert"). Tại sao?

Tôi không thể tìm thấy nó trong danh sách chính thức của các từ dành riêng . Tìm kiếm trên web có vẻ vô dụng vì có rất nhiều thuật ngữ "tra cứu" ngoài kia không liên quan gì đến câu hỏi của tôi.


1
Tất cả những gì tôi có thể nghĩ đến là hàm Tra cứu SSRS ( msdn.microsoft.com/en-us/l Library / ee210531.aspx ). Câu hỏi hay. +1
Thomas Stringer

@Shark tìm thấy tốt, nhưng tôi mong các chức năng khác ở đó tuân theo các quy tắc tương tự, nhưng chúng không làm nổi bật trong SSMS, ví dụ COUNTDISTINCT, COUNTROWSRUNNINGVALUEnên hoạt động theo cùng một cách.
Aaron Bertrand

Câu trả lời:


14

Lúc đầu, tôi nghĩ rằng nó đến từ Sybase (dĩ nhiên là SQL Server có nguồn gốc), có chức năng tra cứu , nhưng đây là liên quan đến PowerBuilder. Và sau đó tôi đã kiểm tra SQL Server 2000 và nó không sáng màu hồng trong Trình phân tích truy vấn ...

nhập mô tả hình ảnh ở đây

... nếu đó là di sản từ Sybase, tôi đã dự đoán nó sẽ nằm trong danh sách các từ được mã hóa màu cùng. Có thể, tôi cho rằng, tệp ngữ pháp đã được cập nhật và nó đã bị bỏ qua "do nhầm lẫn" vào năm 2000, nhưng tôi nghi ngờ về điều đó. Nhiều khả năng nó có màu vì nó được liệt kê trong Dịch vụ ngôn ngữ T-SQL dưới dạng từ tương thích trong tương lai hoặc nó được ném vào Dịch vụ ngôn ngữ với dự đoán sẽ được sử dụng. (Tôi đang chờ xác nhận chính thức về điều này và tôi sẽ chia sẻ những gì tôi có thể.)

Một số ví dụ thú vị khác ( tôi đã phàn nàn về một vài trong số này trên Connect trở lại vào năm 2008 , nhưng nó đã bị đóng vì không sửa) về việc làm nổi bật những từ không phù hợp cũng không có trong danh sách bạn trích dẫn:

  • Domains sáng lên màu xanh
  • Description sáng lên màu xanh
  • Server sáng lên màu xanh
  • Instead sáng lên màu xanh
  • RC2RC4sáng lên màu xanh

nhập mô tả hình ảnh ở đây

Vào thời điểm đó tôi đã không nắm bắt được Lookuphoặc các Insteadví dụ và tôi chắc chắn cũng có một số người khác. Mặc dù tôi đoán tài liệu bạn đang xem không cập nhật như có thể; ít nhất, INSTEADnên có trong danh sách đó vì nó là một phần của T-SQL bây giờ (kể từ khi trình kích hoạt INSTEAD OF được giới thiệu). Tôi cá là có ít nhất 20 từ khóa khác đã được thêm cho SQL Server 2012 nhưng cũng không có trong danh sách đó. Nhanh chóng quét có một số ngoại lệ đáng chú ý là nên có mặt ở đó: OFFSET, IIF, FORMATvv

Một ví dụ khác bạn có thể thấy thú vị; hãy thử đặt một từ như INSTEADtrong một chuỗi nhưng trên dòng riêng của nó. Điều này chạy tốt nhưng nó không giống như nó sẽ:

SELECT 'foo 
INSTEAD
';

nhập mô tả hình ảnh ở đây

(Đây là một lỗi do @JonSeigel đệ trình .)

Có lẽ tôi đã nộp và nhận xét về một vài chục lỗi khác chống lại việc tô sáng cú pháp của Management Studio ; nó chắc chắn không hoàn hảo Tôi đánh giá cao rằng bạn muốn biết lý do tại sao nhưng cuối cùng chúng ta có thể không tìm ra. Như bạn có thể thấy từ rất nhiều mục Kết nối này, họ thường bỏ qua / trì hoãn chúng hoặc sửa chúng mà không cần giải thích nhiều.


2
Tôi quên mất những điều đó! Tôi chạy qua trình Connect của bạn một lúc trước.
ErikE

Nhân tiện, "INSTEAD" có ý nghĩa vì các kích hoạt có thể INSTEAD OF UPDATE. Nhưng đó không phải là một từ dành riêng ...
ErikE

@ErikE Tôi nhấn mạnh "thay vào đó" bởi vì nó một từ khóa, chỉ là không có trong danh sách (một bằng chứng khác cho thấy nó đã hết hạn sử dụng).
Aaron Bertrand

"trang web" được tô sáng màu xanh lam và không có trong danh sách từ khóa dành riêng
Simon D
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.