SQL Prompt不僅可以按照您希望的格式精確地格式化代碼,還可以幫助您快速切換到其他樣式,或者將異常應(yīng)用于不需要特定樣式的SQL腳本的某些部分。
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供大化網(wǎng)站建設(shè)、大化做網(wǎng)站、大化網(wǎng)站設(shè)計、大化網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、大化企業(yè)網(wǎng)站模板建站服務(wù),10年大化做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
SQL Prompt根據(jù)數(shù)據(jù)庫的對象名稱、語法和代碼片段自動進行檢索,為用戶提供合適的代碼選擇。自動腳本設(shè)置使代碼簡單易讀--當開發(fā)者不大熟悉腳本時尤其有用。安裝即可使用,能大幅提高編碼效率。更多相關(guān)資訊,請上慧都網(wǎng)~
我使用SQL Prompt格式化我的代碼;在大多數(shù)情況下,我已經(jīng)定義了標準樣式,可以按照我喜歡的方式對代碼進行布局。對于特定的任務(wù),我還有幾種替代樣式,例如比較同一代碼的兩個版本。
但是,有時候,標準格式對某些代碼或該代碼的某些部分不起作用。因此,像任何優(yōu)秀工具一樣,SQL Prompt不僅會為您格式化代碼,還會為您“取消格式化”,或者允許您有選擇地禁用某些部分的格式化。
取消格式化代碼
有時,您只是希望代碼或代碼的某些部分采用非常精簡的格式,通常只是因為格式化后的版本占用太多行并且變得難以閱讀。例如,考慮清單1中針對WideWorldImporters數(shù)據(jù)庫的簡單查詢。
SELECT?* ??FROM???Sales.Customers
清單1
顯然,我不希望在生產(chǎn)應(yīng)用程序中使用*這樣的代碼,因此我使用Format SQL命令(或Ctrl K,Ctrl Y快捷鍵)應(yīng)用SQL Prompt自定義樣式。我還配置了Prompt Format?>?Styles選項,以便某些格式化操作作為此命令的一部分運行,包括Expand Wildcards和Insert Semicolons。我最終得到了一條長達32行的語句,如清單2所示。
SELECT?CustomerID, ?????????CustomerName, ?????????BillToCustomerID, ?????????CustomerCategoryID, ?????????BuyingGroupID, ?????????PrimaryContactPersonID, ?????????AlternateContactPersonID, ?????????DeliveryMethodID, ?????????DeliveryCityID, ?????????PostalCityID, ?????????CreditLimit, ?????????AccountOpenedDate, ?????????StandardDiscountPercentage, ?????????IsStatementSent, ?????????IsOnCreditHold, ?????????PaymentDays, ?????????PhoneNumber, ?????????FaxNumber, ?????????DeliveryRun, ?????????RunPosition, ?????????WebsiteURL, ?????????DeliveryAddressLine1, ?????????DeliveryAddressLine2, ?????????DeliveryPostalCode, ?????????DeliveryLocation, ?????????PostalAddressLine1, ?????????PostalAddressLine2, ?????????PostalPostalCode, ?????????LastEditedBy, ?????????ValidFrom, ?????????ValidTo ??FROM???Sales.Customers;
清單2
我希望SELECT列表采用更簡潔的格式,為此,我可以使用一個有趣的動作,稱為unformat。突出顯示清單2中的整個語句,然后從“操作”菜單中,開始輸入unformat,然后從過濾的列表中選擇它。
當我第一次看到此命令時,我設(shè)想在格式化代碼后,它就像一個“撤消”按鈕,但事實并非如此。它不會撤消您剛剛應(yīng)用的任何重構(gòu)操作的影響,但是會刪除所有空格字符,并用單個空格字符替換。結(jié)果是它從代碼中刪除了所有漂亮的格式,并將語句的每一位都放在一行上(盡管它可能顯示為自動換行,具體取決于它出現(xiàn)的位置或您的SSMS設(shè)置)。
SELECT?Customers.CustomerID,?Customers.CustomerName,?Customers.BillToCustomerID,?Customers.CustomerCategoryID,?Customers.BuyingGroupID,?Customers.PrimaryContactPersonID,?Customers.AlternateContactPersonID,?Customers.DeliveryMethodID,?Customers.DeliveryCityID,?Customers.PostalCityID,?Customers.CreditLimit,?Customers.AccountOpenedDate,?Customers.StandardDiscountPercentage,?Customers.IsStatementSent,?Customers.IsOnCreditHold,?Customers.PaymentDays,?Customers.PhoneNumber,?Customers.FaxNumber,?Customers.DeliveryRun,?Customers.RunPosition,?Customers.WebsiteURL,?Customers.DeliveryAddressLine1,?Customers.DeliveryAddressLine2,?Customers.DeliveryPostalCode,?Customers.DeliveryLocation,?Customers.PostalAddressLine1,?Customers.PostalAddressLine2,?Customers.PostalPostalCode,?Customers.LastEditedBy,?Customers.ValidFrom,?Customers.ValidTo?FROM?Sales.Customers;
清單3
它將保留注釋周圍的空間,以確保雙連字符(--)注釋不會最終注釋掉所有剩余的代碼。您可以偶爾使用此技巧來防止提示使行長于換行(例如,當您需要在線發(fā)布代碼時)。
當然,更常見的格式取消需要的不是完整的語句,而只是其中的一部分。幸運的是,如果僅突出顯示注釋的文本,則unformat操作可在語句甚至注釋的任何部分上起作用。我處理過很多次的地方是在處理大量項目時,通常是在使用“Copy as IN”子句功能時。
假設(shè)您的用戶要求一個查詢,該查詢將僅向他們顯示已訂購價值超過18000美元商品的那些客戶的詳細信息。清單4將為那些“高支出”客戶提供CustomerId值清單。
SELECT?DISTINCT?CustomerId--,Quantity?*?OrderLines.UnitPrice ??FROM???Sales.Orders ?????????????JOIN?Sales.OrderLines ?????????????????ON?OrderLines.OrderID?=?Orders.OrderID ??WHERE?Quantity?*?OrderLines.UnitPrice?>?18000;
清單4
在網(wǎng)格結(jié)果中,突出顯示該列,右鍵單擊并選擇Copy as IN子句,您可以快速生成用戶所需的查詢。但是,它幾乎有100行。
SELECT?* ??FROM???Sales.Customers ??WHERE??CustomerId ??IN ??( ??187, ??509, ??825, ??935, ??952, ??… ??839, ??1000, ??1005, ??1040 ??)
清單5
要將查詢發(fā)送給用戶,您可能不希望應(yīng)用標準格式,這可能會擴展通配符,使查詢更長,并且根據(jù)格式樣式而使列表縮進等等。在這種情況下,您可以僅突出顯示ID列表,應(yīng)用unformat操作,添加一些回車/換行符,查詢將如清單6所示。
SELECT?* ??FROM???Sales.Customers ??WHERE??CustomerId ??IN ??( ??187,?509,?825,?935,?952,?1003,?415,?529,?583,?1006,?1018,?1056,?96,?166,?201,?472,?489,?863,?999,?15,?32,?45, ??401,?899,?948,?988,?101,?527,?961,?26,?105,?427,?521,?813,?71,?413,?420,?480,?821,?37,?943,?950,?1010,?50,?102, ??170,?460,?492,?560,?578,?815,?16,?117,?405,?410,?533,?922,?949,?954,?498,?829,?1017,?42,?67,?418,?834,?854,?861, ??874,?911,?858,?892,?894,?437,?907,?912,?962,?14,?107,?524,?550,?930,?973,?40,?114,?431,?490,?807,?832,?839, ??1000,?1005,?1040 ??)
清單6
選擇性禁用格式
就像SQL Prompt在格式化代碼方面一樣出色,有時,您只是不希望SQL Prompt接觸代碼的特定部分,因為格式化模板不能完全滿足您的要求。例如,假設(shè)您剛剛花了一些時間完全正確地為該部分代碼獲取了非標準格式,但現(xiàn)在想對其余的查詢再次應(yīng)用Format SQL。
清單5的另一種解決方案是,如果您知道標準樣式將完全按照所需的格式設(shè)置列表項的格式,則僅是對語句的其余部分禁用格式設(shè)置,并且Prompt允許您輕松地做到這一點。只需突出顯示列表前面的代碼段(在清單5中),并對選定的文本操作應(yīng)用Disable Formatting。注釋將出現(xiàn)在代碼部分,告訴SQL Prompt在突出顯示的部分開始處禁用格式設(shè)置,并在結(jié)尾處重新啟用它。然后,只需突出顯示整個語句并應(yīng)用您選擇的樣式即可。
--?SQL?Prompt?formatting?off ??SELECT?* ??FROM???Sales.Customers ??WHERE??CustomerId ??IN ??--?SQL?Prompt?formatting?on ??????(?187,?509,?825,?935,?952,?1003,?415,?529,?583,?1006,?1018,?1056,?96,?166,? ????????201,?472,?489,?863,?999,?15,?32,?45,?401,?899,?948,?988,?101,?527,?961,? ????????26,?105,?427,?521,?813,?71,?413,?420,?480,?821,?37,?943,?950,?1010,?50,?102, ????????170,?460,?492,?560,?578,?815,?16,?117,?405,?410,?533,?922,?949,?954,?498,?829, ????????1017,?42,?67,?418,?834,?854,?861,?874,?911,?858,?892,?894,?437,?907,?912,?962, ????????14,?107,?524,?550,?930,?973,?40,?114,?431,?490,?807,?832,?839,?1000,?1005,?1040 ??????);
清單7
請注意,您也可以手動鍵入格式控制注釋,一些間距、大小寫和結(jié)尾注釋不會阻止它們起作用。但是,該方法依賴于解析器看到雙連字符注釋(--)后跟SQL Prompt格式化Off(或On),因此,如果由于某種原因您不能或不使用雙連字符注釋,那么您將無法使用此控件方法。
在清單8中,我決定該SET子句應(yīng)該全部顯示在一行上,該WHERE子句中的最后兩個布爾值也應(yīng)該顯示在同一行上,因此我將unformat操作選擇性地應(yīng)用在了每個部分。
UPDATE?Sales.CustomerCategories ??SET?CustomerCategories.CustomerCategoryID?=?1,?CustomerCategories.CustomerCategoryName?=?N'New',?CustomerCategories.LastEditedBy?=?0 ??WHERE??CustomerCategories.CustomerCategoryID?=?1 ???AND?CustomerCategories.CustomerCategoryName?=?N'New'?AND?CustomerCategories.LastEditedBy?=?0;
清單8
然后,由于麻煩使用自定義格式,因此我希望它保持這種狀態(tài),所以我將“禁用”格式用于所選文本僅應(yīng)用于語句的那些部分。
UPDATE?Sales.CustomerCategories?--?A?code?comment ??--?SQL?Prompt?formatting?off ???SET?CustomerCategories.CustomerCategoryID?=?1,?CustomerCategories.CustomerCategoryName?=?N'New',?CustomerCategories.LastEditedBy?=?0 ??--?SQL?Prompt?formatting?on ??WHERE??CustomerCategories.CustomerCategoryID?=?1?--?Another?comment ??--?SQL?Prompt?formatting?off ???AND?CustomerCategories.CustomerCategoryName?=?N'New'?AND?CustomerCategories.LastEditedBy?=?0; ??--?SQL?Prompt?formatting?on
清單9
現(xiàn)在,如果我應(yīng)用Format SQL,它將不會影響代碼的那些注釋部分。但是,一個問題是該查詢中的注釋數(shù)量現(xiàn)在已失控,這使得該語句更難以閱讀。幸運的是,格式控制注釋不必單獨顯示。但是,它必須是該行的第一條評論。在清單10中,第一個Off控件注釋仍然有效,但第二個注釋無效。
UPDATE?Sales.CustomerCategories?--?SQL?Prompt?formatting?off?–-?A?code?comment ??SET?CustomerCategories.CustomerCategoryID?=?1,?CustomerCategories.CustomerCategoryName?=?N'New',?CustomerCategories.LastEditedBy?=?0 ??--?SQL?Prompt?formatting?on ??WHERE?CustomerCategories.CustomerCategoryID?=?1?--?Another?comment?--?SQL?Prompt?formatting?off ????????AND?CustomerCategories.CustomerCategoryName?=?N'New' ????????AND?CustomerCategories.LastEditedBy?=?0; ??--?SQL?Prompt?formatting?on
清單10
總結(jié)
大多數(shù)時候,目標是對所有代碼使用相同的標準格式。有時,該格式模板無法完全滿足您的需求。為此,SQL Prompt具有可獨立于Format SQL命令應(yīng)用的操作,以取消格式化所選代碼或忽略該代碼的Format SQL命令。
網(wǎng)站題目:精確地格式化代碼、快速切換樣式?您只需要SQLPrompt
文章源于:http://aaarwkj.com/article48/iggchp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、App開發(fā)、網(wǎng)站導(dǎo)航、App設(shè)計、手機網(wǎng)站建設(shè)、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)