中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

精確地格式化代碼、快速切換樣式?您只需要SQL Prompt

發布時間:2020-04-06 01:27:21 來源:網絡 閱讀:249 作者:wx5d39183e901c5 欄目:關系型數據庫

SQL Prompt不僅可以按照您希望的格式精確地格式化代碼,還可以幫助您快速切換到其他樣式,或者將異常應用于不需要特定樣式的SQL腳本的某些部分。

SQL Prompt根據數據庫的對象名稱、語法和代碼片段自動進行檢索,為用戶提供合適的代碼選擇。自動腳本設置使代碼簡單易讀--當開發者不大熟悉腳本時尤其有用。安裝即可使用,能大幅提高編碼效率。更多相關資訊,請上慧都網~


我使用SQL Prompt格式化我的代碼;在大多數情況下,我已經定義了標準樣式,可以按照我喜歡的方式對代碼進行布局。對于特定的任務,我還有幾種替代樣式,例如比較同一代碼的兩個版本。

但是,有時候,標準格式對某些代碼或該代碼的某些部分不起作用。因此,像任何優秀工具一樣,SQL Prompt不僅會為您格式化代碼,還會為您“取消格式化”,或者允許您有選擇地禁用某些部分的格式化。

取消格式化代碼

有時,您只是希望代碼或代碼的某些部分采用非常精簡的格式,通常只是因為格式化后的版本占用太多行并且變得難以閱讀。例如,考慮清單1中針對WideWorldImporters數據庫的簡單查詢。

SELECT?*
??FROM???Sales.Customers

清單1

顯然,我不希望在生產應用程序中使用*這樣的代碼,因此我使用Format SQL命令(或Ctrl KCtrl Y快捷鍵)應用SQL Prompt自定義樣式。我還配置了Prompt Format?>?Styles選項,以便某些格式化操作作為此命令的一部分運行,包括Expand WildcardsInsert 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,然后從過濾的列表中選擇它。

精確地格式化代碼、快速切換樣式?您只需要SQL Prompt

當我第一次看到此命令時,我設想在格式化代碼后,它就像一個“撤消”按鈕,但事實并非如此。它不會撤消您剛剛應用的任何重構操作的影響,但是會刪除所有空格字符,并用單個空格字符替換。結果是它從代碼中刪除了所有漂亮的格式,并將語句的每一位都放在一行上(盡管它可能顯示為自動換行,具體取決于它出現的位置或您的SSMS設置)。

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

它將保留注釋周圍的空間,以確保雙連字符(--)注釋不會最終注釋掉所有剩余的代碼。您可以偶爾使用此技巧來防止提示使行長于換行(例如,當您需要在線發布代碼時)。

當然,更常見的格式取消需要的不是完整的語句,而只是其中的一部分。幸運的是,如果僅突出顯示注釋的文本,則unformat操作可在語句甚至注釋的任何部分上起作用。我處理過很多次的地方是在處理大量項目時,通常是在使用“Copy as IN”子句功能時。

假設您的用戶要求一個查詢,該查詢將僅向他們顯示已訂購價值超過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

在網格結果中,突出顯示該列,右鍵單擊并選擇Copy as IN子句,您可以快速生成用戶所需的查詢。但是,它幾乎有100行。

SELECT?*
??FROM???Sales.Customers
??WHERE??CustomerId
??IN
??(
??187,
??509,
??825,
??935,
??952,
??…
??839,
??1000,
??1005,
??1040
??)

清單5

要將查詢發送給用戶,您可能不希望應用標準格式,這可能會擴展通配符,使查詢更長,并且根據格式樣式而使列表縮進等等。在這種情況下,您可以僅突出顯示ID列表,應用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接觸代碼的特定部分,因為格式化模板不能完全滿足您的要求。例如,假設您剛剛花了一些時間完全正確地為該部分代碼獲取了非標準格式,但現在想對其余的查詢再次應用Format SQL

清單5的另一種解決方案是,如果您知道標準樣式將完全按照所需的格式設置列表項的格式,則僅是對語句的其余部分禁用格式設置,并且Prompt允許您輕松地做到這一點。只需突出顯示列表前面的代碼段(在清單5中),并對選定的文本操作應用Disable Formatting。注釋將出現在代碼部分,告訴SQL Prompt在突出顯示的部分開始處禁用格式設置,并在結尾處重新啟用它。然后,只需突出顯示整個語句并應用您選擇的樣式即可。

--?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

請注意,您也可以手動鍵入格式控制注釋,一些間距、大小寫和結尾注釋不會阻止它們起作用。但是,該方法依賴于解析器看到雙連字符注釋(--)后跟SQL Prompt格式化Off(或On),因此,如果由于某種原因您不能或不使用雙連字符注釋,那么您將無法使用此控件方法。

在清單8中,我決定該SET子句應該全部顯示在一行上,該WHERE子句中的最后兩個布爾值也應該顯示在同一行上,因此我將unformat操作選擇性地應用在了每個部分。

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

然后,由于麻煩使用自定義格式,因此我希望它保持這種狀態,所以我將“禁用”格式用于所選文本僅應用于語句的那些部分。

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

現在,如果我應用Format SQL,它將不會影響代碼的那些注釋部分。但是,一個問題是該查詢中的注釋數量現在已失控,這使得該語句更難以閱讀。幸運的是,格式控制注釋不必單獨顯示。但是,它必須是該行的第一條評論。在清單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

總結

大多數時候,目標是對所有代碼使用相同的標準格式。有時,該格式模板無法完全滿足您的需求。為此,SQL Prompt具有可獨立于Format SQL命令應用的操作,以取消格式化所選代碼或忽略該代碼的Format SQL命令。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

恩施市| 卓尼县| 林西县| 修水县| 诸暨市| 阿合奇县| 阳春市| 邓州市| 抚州市| 阜城县| 旅游| 黄石市| 和林格尔县| 林州市| 伽师县| 亳州市| 福泉市| 湟源县| 五常市| 濮阳县| 来宾市| 松潘县| 顺义区| 乐清市| 蛟河市| 凤城市| 安徽省| 依安县| 镶黄旗| 财经| 普安县| 维西| 南宁市| 乐平市| 怀安县| 同仁县| 虞城县| 满洲里市| 塔河县| 华坪县| 石阡县|