Podpowiadanie składni
Większość miejsc w systemie, wymagających pisania złożonych formuł (wyliczanie wartości, SQL, wyrażenia regularne) jest wyposażonych w funkcję inteligentnego podpowiadania składni, którą aktywujemy klawiszami Ctrl+Spacja.
Zostanie wyświetlone wówczas okno zawierające drzewo podpowiedzi pogrupowanych według znaczenia – tabele, możliwe JOINy, sugerowane klucze, kolumny tabel, funkcje, słowniki, słowa kluczowe, odwołania do elementów dodatkowych, sekcje skryptów itp.

W oknie tym można nawigować za pomocą klawiszy:
- góra / dół – przewijanie i zmiana zaznaczonego elementu,
- prawo / lewo – skok do rodzica i zwijanie/rozwijanie gałęzi,
- litery, cyfry, _ - wyszukiwanie elementów (aktualny klucz wyszukiwania wyświetlany jest w małym polu tekstowym u dołu okna),
- enter / dwuklik / operator arytmetyczny – wybór elementu i wstawienie do wyrażenia.
Aby podpowiadanie działało, część wyrażenia od jego początku do miejsca wstawienia musi być poprawna składniowo. Ponadto, w sytuacji, gdy podpowiedzi początku wyrażenia będą zależały od dalszej jego części, ta dalsza część musi również być poprawna – musi być osiągalna przez parser, pominąwszy element aktualnie podpowiadany.
Przykład szybkiego pisania wyrażenia
Poniżej przedstawiono funkcje działania podpowiadania składni podczas definiowania nowej listy w edytorze SQL.
- Zacznij pisać
SELECTi wciśnij Ctrl+Spacja. Tutaj zobaczymy niewiele - jedynie niektóre słowa kluczowe SQL z kontekstu wyrażenia, funkcje i inne elementy dodatkowe, ale nie listę tabel czy kolumn. Proponujemy pisać SQL w nieco innej kolejności:

- Wpisz
SELECT * FROMwciśnij Ctrl+Spacja. Tu system podpowie listę tabel, w tym zadeklarowanych i CTE.

- Kolejno wpisuj
SELECT * FROM table1(tutaj tabela Order) i wciśnij Ctrl+Spacja. Tu zobaczymy dodatkowo listę dostępnych JOINów według relacji zdefiniowanych w bazie (a także, w oddzielnej grupie, wszystkie tabele, dostępne słowa kluczowe itd.). Po wybraniu jednej z nich, warto czasem uzupełnić wyrażenie o aliasy dla tabel.

- Kolejno
SELECT * FROM table1 t1(tutaj tabela Order)JOIN table2 t2(tutaj tabela Clients) i wciśnij Ctrl+Spacja Tutaj zobaczymy dostępne, gotowe warunki według zdefiniowanych relacji. Można też oczywiście posłużyć się podpowiedziami nazw kolumn z poszczególnych tabel (poprzedzonych już aliasami) aby ułożyć własne warunki złączenia. Co ciekawe, częściej potrzebne kolumny będące częścią kluczy głównych, obcych, występujące w indeksach czy też zawierające w nazwie słowo_REL_zostały zgrupowane pod wspólnym elementemPK/FK/rel

- Wpisz kolejną składową (itd… dalsze JOINy, podzapytania, CROSS/OUTER APPLY…)
WHEREi naciśnij Ctrl+Spacja.

SELECTi wciśnij Ctrl+SpacjaFROM table1 t1(tutaj tabela Order). Na tym etapie, jeśli dalsza część wyrażenia jest poprawna, zobaczymy listę dostępnych kolumn (lub aliasów) z wszystkich dostępnych niżej tabel (t1, t2, …) wraz z nullowalnością, typami, komentarzami (jeśli zostały zdefiniowane) pogrupowane według tabel i podzapytań źródłowych.
Na liście podpowiedzi można zaznaczyć więcej elementów, co spowoduje dodanie do wyrażenia ich listy oddzielanej przecinkami. W oknie podpowiadania składni zaznacz pola i wybierz Enter.

Zaznaczanie według kontekstu
Edytor jest wyposażony w możliwość inteligentnego poszerzenia zaznaczenia według kontekstu. Przykładowo, jeśli ustawimy kursor w drugim wywołaniu GetDate()
SELECT cn.ContactID
FROM Person.Contact cn
JOIN HumanResources.Employee emp ON cn.ContactID = emp.ContactID
CROSS APPLY ( SELECT top 1 * FROM Person.Address WHERE cn.AdditionalContactInfo = cn.ContactID )
WHERE cn.ModifiedDate is null AND emp.ModifiedDate is null
OR cn.ModifiedDate > GetDate() AND emp.ModifiedDate > GetDate()
i naciśniemy kilka razy Ctrl+→ (lub Ctrl+W) zaznaczenie poszerzy się do kolejno:
GetDate
GetDate()
emp.ModifiedDate > GetDate()
cn.ModifiedDate > GetDate() AND emp.ModifiedDate > GetDate()
cn.ModifiedDate is null AND emp.ModifiedDate is null
OR cn.ModifiedDate > GetDate() AND emp.ModifiedDate > GetDate()
Zbyt szerokie zaznaczenie można zwęzić klawiszami Ctrl+←.
Funkcja ta jest przydatna do szybkiego kopiowania logicznych fragmentów wyrażeń lub zastępowania ich innymi, a także do weryfikacji kolejności wiązania operatorów, np. OR / AND, UNION / EXCEPT / INTERSECT itd.