翻譯|使用教程|編輯:莫成敏|2019-10-16 15:04:31.440|閱讀 555 次
概述:SQL Prompt是一款實用的SQL語法提示工具。本文將介紹Prompt最著名的生產力功能,代碼完成和IntelliSense,尤其是我如何控制其工作方式以適應我的需求。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
SQL Prompt是一款實用的SQL語法提示工具。其根據數據庫的對象名稱、語法和代碼片段自動進行檢索,為用戶提供合適的代碼選擇。自動腳本設置使代碼簡單易讀--當開發者不大熟悉腳本時尤其有用。SQL Prompt安裝即可使用,能大幅提高編碼效率。
有個老笑話說,升級到最新的SQL Server在某些DBA上是浪費的,因為它們仍將主要堅持在SQL Server 2005中起作用。根據我的經驗,這種類型的DBA變得越來越罕見,但是我們很多人沒有從我們的SQL Server工具中獲得“全部功能”的觀點是有一定道理的。當它們“開箱即用”時,我們會與他們合作,并且僅使用其功能的一小部分。探尋“新事物”的時間,至少與我們想要的一樣,仍然難以捉摸。
SQL Prompt是一個很好的工具,可以幫助個人開發人員以及整個團隊在編寫SQL時提高工作效率。但是,我懷疑許多用戶從未發現它的許多功能,尤其是較新的增強功能。對于他們使用的零件,他們并不總是花時間來研究如何配置和控制其行為以最適合其需求。
如果您的情況如此,希望本文對您有所幫助。我將介紹Prompt最著名的生產力功能,代碼完成和IntelliSense,尤其是我如何控制其工作方式以適應我的需求。然后,我將簡要介紹一些“鮮為人知”的功能,這些功能可以提高團隊的工作效率,并有助于防止不必要的錯誤以及從錯誤中恢復所造成的時間損失。
更快地編寫SQL
作為數據庫開發人員,我需要提高工作效率,而且我一直都在使用SQL Prompt的代碼完成和IntelliSense功能。是的,IntelliSense在SQL Server Management Studio中是本地可用的,但是除了列出可用對象之外,它所做的只是其他事情。
SQL Prompt的IntelliSense更有用。它為列和表提供自動完成建議,幫助填寫JOIN條件,GROUP BY子句,顯示對象定義和依賴項等。當然,作為開發人員,由于我們將大量使用它,因此我們將希望能夠精確控制此功能的工作方式,以優化生產力。
最近的一項增強功能是,使最近使用最多的對象上升到建議框頂部的選項。和往常一樣,我們可以在“SQL Prompt選項”菜單中進行配置,在這種情況下,可以在“建議” >“行為”中:
在下面的示例中,我輸入了前面的兩個查詢,第一個查詢在users表上,第二個查詢在sales表上。現在,當我在第三個查詢中鍵入內容時,我看到sales和users表是列表中的前兩個建議,用灰色細線將其與其他選擇分開。
“建議” >“行為”部分包含其他有用的選項,例如,使我們可以控制何時彈出建議框,顯示對象定義框等。另一個相對較新且簡單的增強功能是“使彈出窗口透明... ”選項。當您在查詢中間進行編輯時,這很有用,否則彈出建議框會掩蓋查詢的其余部分。當您需要進行的更改與隱藏的語句相關時,這尤其令人煩惱。只需按Ctrl鍵,彈出框就會暫時透明。
您還可以在“建議”部分的其他位置找到其他有用的控件。例如:
建議 > 連接——控制為其提出建議的數據庫和模式。這可以立即消除很多“噪音”
建議 > 連接條件——指定建議JOIN條件的條件
改善SQL標準
除了IntelliSense之外,SQL Prompt還有很多事情要做。它還提供了一組有助于改善SQL編碼標準的功能,例如自動格式化、可重復使用的代碼段以及代碼分析。在每種情況下,這些功能均旨在允許您定義團隊標準,然后共享它們并一致地實施它們。
這些功能使SQL Prompt成為了出色的團隊協作工具。它們幫助我與開發人員合作,灌輸良好的SQL編碼實踐,防止重復,并減少將其轉化為生產代碼的代碼問題。
之前我有描述過這些功能,現在就不贅述了。但是,值得經常檢查發行說明和文檔,因為對這些功能進行更改和添加非常頻繁。例如,對于代碼分析,SQL Prompt現在將自動修復越來越多的一些較簡單的代碼問題。
避免意外丟失數據
在作為DBA的職業生涯中,我一直想嚴格控制誰可以從SQL Server Management Studio訪問我們的生產SQL Server實例。但是,盡管存在明顯的危險,但通常很難勸阻組織不要允許人們使用這種“快速、簡便”的方式進行更改。我一直在努力尋找更好的選擇。安全地進行修復,進行測試然后優雅地發布它們的過程。但是,改變主意并不容易,尤其是在經常重復“所有客戶都應該通過SSMS訪問”之類的組織中。當然,有時負責生產數據庫性能和數據安全性的DBA除了直接進行緊急修復外,別無選擇。
對于所有這些情況,SQL Prompt都具有一些有用的功能,這些功能可以保護我以及任何直接訪問登臺服務器或生產服務器的開發人員,避免意外地進行破壞性的數據庫更改,或意外刪除對象或數據,或者進行更多操作。錯過了重要的過濾條件,因此進行了超出預期的廣泛更改。要“消除”此類事故的影響,可能需要花費數小時的艱苦工作。
SSMS選項卡著色
此功能將根據連接的每個選項卡所使用的服務器或服務器類型,對查詢窗格頂部的每個“標簽”以及底部狀態窗格進行顏色編碼。一旦您習慣了亮紅色的標簽表示“我已連接到生產服務器” 的想法,在連接到“錯誤”服務器的查詢窗格中意外執行代碼就變得更加困難!
執行警告
有許多方法可以無意或以其他方式破壞數據或對象。您突出顯示DELETE或UPDATE語句,但不小心忽略了該WHERE子句。您的代碼中有不需要的DROP或TRUNCATE命令,可能是一些測試代碼的殘跡,或者是一些未經測試且不正確的代碼,它們會根據某些業務邏輯修改數據。從本質上講,沒有辦法在不實現附加邏輯或不使用觸發器的情況下停止執行此類命令。
當我們嘗試執行可能導致意外更改或數據丟失的無條件命令時,SQL Prompt的執行警告可以提醒我們。這個想法基于語法檢查引擎。該工具可以嗅探該命令,并且可以檢測以下情況并提出警告:
UPDATE或DELETE沒有WHERE條件的語句,包括用于,INNER JOIN創建或更改過程或觸發器時的條件。
DROP和TRUNCATE聲明(v9.5.6及更高版本)
例如,以下DELETE語句將從表Table1中刪除ID值與表Table2中所找到的那些行匹配的所有行:
DELETE FROM T1 FROM dbo.Table1 AS T1 JOIN dbo.Table2 AS T2 ON T1.ID = T2.ID;
默認情況下,當我們對以下語句單擊“執行”時,SQL Prompt將發出警告:
但是,由于我多次使用這種語句,因此對于生產率而言,禁用此類警告的能力也很重要。您可以從“選項”菜單(“建議” >“警告和突出顯示” >“執行警告”)控制SQL Prompt將發出哪些警告。如前所述,即使啟用這些警告,早處理臨時對象時也不會引發這些警告。
在每種情況下,如果您決定不繼續執行該語句,則會看到一條綠色的波浪線和一個工具提示,解釋了為什么發出警告。這是一個DROP聲明的示例:
結論
SQL Prompt是一個很棒的SQL生產工具。我特別喜歡它經常對其所有功能進行改進,因此,值得一提的是使用UserVoice服務要求某個功能或增強功能。
我喜歡這種方法。每天都在使用SQL Server的最終用戶共享他們的知識,并要求進行更改,團隊會做出回應,從而使產品變得更好。這就是為什么多年來SQL Prompt已成為開發T-SQL代碼的最佳工具之一的原因。
本教程內容到這里就結束了,希望文章內容對您有所幫助~您也可以下載SQL Prompt試用版進行評估~
相關內容推薦:
想要購買SQL Prompt正版授權,或了解更多產品信息請點擊
1024致敬程序員,慧都18888元大禮包全場送,活動詳情點擊下方圖片
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn