發(fā)布于:2021-01-14 09:27:00
0
98
0
長期以來,我一直希望SQL編輯器具有強(qiáng)大而即時(shí)的自動完成功能。它從來沒有來過-所有數(shù)據(jù)庫管理器中的自動完成都是非?;镜?。
讓我們看看我們在SQL Studio中準(zhǔn)備了什么。
我們在FROM子句-標(biāo)準(zhǔn)中提供表自動完成功能。但是,我們進(jìn)行了一些創(chuàng)新以提高生產(chǎn)率。
鍵入SELECT后,我們會立即提供一個表列表,然后擴(kuò)展到SELECT * FROM table。
當(dāng)您在FROM子句中編寫聯(lián)接時(shí),我們知道表的關(guān)系,并基于聯(lián)接表中的實(shí)際外鍵提供ON表達(dá)式。
完全支持WITH子句公用表表達(dá)式。自動完成功能不僅可以在WITH子句項(xiàng)的SELECT語句中工作,而且還在所有支持WITH子句的語句中在需要時(shí)提供CTE。
擴(kuò)展列提供
星號(*)
每列
所有列(以逗號分隔)
如果您的表是別名,我們將使用這些別名來限定列。
我們的自動完成引擎實(shí)際上依賴于我們的靜態(tài)分析引擎。我們在復(fù)雜語句的所有部分中跟蹤作用域和聲明,僅提供在該特定范圍內(nèi)有效的項(xiàng)目。
對未來的計(jì)劃
很久以前,在名為SQL格式的SSMS擴(kuò)展中,我構(gòu)建了一個自動完成引擎,該引擎在每個項(xiàng)目旁邊提供了復(fù)選框。我們還將在SQL Studio中對此進(jìn)行介紹。您將能夠選擇帶有空格的項(xiàng)目。然后,按Enter將立即展開所有內(nèi)容。對于列,您將獲得一個逗號分隔的列表。對于表,您將獲得帶有正確ON表達(dá)式的INNER JOIN。
性能
為了使自動完成功能具有實(shí)時(shí)性,它需要在不到十分之一秒的時(shí)間內(nèi)響應(yīng)您的鍵入。在臺式機(jī)上不到100毫秒的處理時(shí)間并不難。在鍵入瀏覽器并將結(jié)果返回到瀏覽器時(shí)在云中執(zhí)行此操作并非易事。我們?nèi)绾巫龅竭@一點(diǎn)正是另一篇文章的主題。
作者介紹