SSMS 2012'de T-SQL'i Biçimlendirme


39

Bu Microsoft belgesine göre:

http://msdn.microsoft.com/en-us/library/ms174205.aspx

SQL belgelerimi SQL Server Management Studio 2012'de biçimlendirmek için ctrl + K, ardından ctrl + D kullanabileceğimi sanıyorum, ancak bu combo kullandığımda hatayı alıyorum:

Tuş kombinasyonu (Ctrl + K, Ctrl + D), şu anda mevcut olmayan komuta (Belgeyi Biçimlendir) bağlıdır.

Biçimlendirilmemiş bir SQL belgesinde değişiklik yapmayı deniyorum, bu da okumayı zorlaştırıyor. Belgeyi Biçimlendir komutunu nasıl kullanılabilir hale getirebileceğini bilen var mı?


Bence ifade Available only in the text editor, teknik yazarın açıkça olumsuz bir şey söylemeden "sorgu editörü değil" demesinin bir yolu
billinkc

1
@billinkc Bunun doğru olduğunu sanmıyorum. Metin editörü hem Transact-SQL hem de XML için kullanılan "sorgu editörü" dür , sadece XML ile uğraşırken bir sorgu editörü değildir. Belgeleri biraz umut verici olduğunu düşünüyorum ve Connect öğesinde böyle yorumda bulundum .
Aaron Bertrand

Yanıtlar:


42

Peşinde olduğunuz klavye ( Ctrl+ K, Ctrl+ D) "biçimlendirme" içindir - ancak beklediğiniz şekilde değildir. Bu bulunduğu haliyle sadece doğru boşluklar ve sekmeler eklemek için kullanılır, bir prettifier değil Tools > Options > Text Editor > Transact-SQL > General/Tabsyani metnin bir kısmını vurgulamak ve klavye kombinasyonu vurmak, eğer 4 mekanlara dönüştürmek sekmelerin gerekiyordu Eğer insert seçtiyseniz (- boşlukları), belirlediğiniz girinti türünü uygulayın, vb.

Bu seçenek kodu daha okunaklı kılmak için tasarlanmamıştır - bu, Management Studio'nun şu anda yerel olarak sunduğu işlevsellik değildir. Birkaç 3. parti seçeneği olsa da, bazıları Management Studio’nun dışına çıkmış, örneğin:

Ayrıca editör içinde çeşitli formatlama desteği seviyeleri için de eklentiler var:

Şimdi, mesajı almanın nedeni ...

Tuş kombinasyonu (Ctrl + K, Ctrl + D), şu anda mevcut olmayan komuta (Belgeyi Biçimlendir) bağlıdır.

... çünkü SSMS, bu tuş birleşimini farklı bir bağlamda eşledi. Bunu "düzeltebilmen" gerektiği gibi - yine, "düzeltmek" işe yarasa bile - hala yapmak istediğini yapmaz:

  1. Git Tools > Options > Environment > Keyboard
  2. İmlecinizi Press shortcut keys:kutuya yerleştirin
  3. Hit Ctrl+ K, Ctrl+D
  4. Değişim Shortcut currently used by:gelen açılır DataWarehouse DesigneriçinText Editor

    görüntü tanımını buraya girin

  5. tamam tuşuna basın

Şimdi, bunun klavye kombinasyonunu metin editörüyle eşleştirmesi gerekiyor , ancak Management Studio, OK tuşuna bastıktan sonra geri döndürüyor (hata mesajını almaya devam edeceksiniz. O halde sorun, belgelerin bu işlevselliğin var olduğuna inandığını sanıyorum, ancak Yönetim) Studio daha iyisini biliyor ve basitçe sunmuyor (ve Microsoft bunu belgelerde bir hata olarak yazacak ve araçta bir eksiklik olması yerine düzeltecektir) Gelecekte umut olabilir, ama şimdi, bu bilinen ve büyük ölçüde göz ardı edilen bir konudur . Belgelerin referans aldığı Formattingsekmenin sadece mevcut olmadığını not edersiniz (ancak klavye kombinasyonunun çalıştığı XML için var olmasına rağmen).

Seçenekler iletişim kutusunun Metin Düzenleyici bölümünde dilin Biçimlendirme bölmesinde belirtilen dilin girintiyi ve boşluk biçimini uygular . Yalnızca metin düzenleyicide ve yalnızca belirli dillerde kullanılabilir .

SSMS'nin doğal olarak ne tür formatlama seçenekleri sunduğuna dair bir fikir edinmenin bir başka yolu da, Tools > Customize > Commands > Edit > Add Command... > Formatoradaki olası komutların listesine gidip bakmak. Asıl dilin hiçbir bilgisi olmadığını belirten hiçbir şey yoktur, bu nedenle satır sonlarını nereye ekleyeceğini veya ek girintiler ekleyeceğini veya parantez vb.

görüntü tanımını buraya girin

Dile özgü formatlamanın mevcut T-SQL kodunu daha okunaklı hale getirmesini istiyorsanız, SSMS'den pek bir şey alamazsınız ve başka seçenekler aramanız gerekir.


1
OPMS ve Aaron tarafından tarif edilen aynı semptom ve davranışları SSMS 2016'da gördüm; ancak düzgün çalışmasını sağladım. Anahtar, Ctrl+K, Ctrl+Dilk önce Removedüğmeyi kullanarak bağlanan tüm komutları kaldırmak , ardından yukarıda tanımlandığı gibi klavyeyi bağlamak için Aaron'un dört adımlı programını takip ediyordu ( Tools > Options > Environment > Keyboard). İşte benim şeyin bir ekran görüntüsü var Options: her şey kurulum bir kez iletişim kutusu görünüyor, ister pasteboard.co/GDYkh3h.jpg .
Mass Dot Net

Bu yorumun neden bir cevap olarak listelenmediğinden emin değilim çünkü söylediklerinizi yaparak benim için işe yarar.
Kristopher

12

Bunun SSMS'de mümkün olduğuna inanmıyorum. Bu özellik için açılan bir Connect öğesi vardı .

Kişisel olarak kötü biçimlendirilmiş SQL kodu için kullanmaktan hoşlandığım şey Poor SQL'deki web uygulaması . SQL kodunu özelliklerinize göre biçimlendirmek gerçekten çok güzel bir iş. İsterseniz bile HTML üretir. SSMS eklentisini veya reklamını yaptıkları diğer yayınları kullanmıyorum, hızlı biçimlendirme için siteye atladım ve sonra doğrudan SSMS'ye kopyala / yapıştır yapıyorum.


Zavallı SQL'deki bahşiş için teşekkürler. Şunu kesin olarak arka cebime tıkacağım!
Kris Gruttemeyer,

3
Bir diğer güzel şey (bloglar için kod biçimlendirme için de faydalıdır) Simple-Talk'un SQL Prettifier'idir .
Aaron Bertrand

Öyleyse Microsoft'un belgesi formatlayabildiğini söylese de, SSMS yapamaz?

Zavallı SQL'de ayrıca Notepad ++ için bir eklenti var. Neden SSMS eklentisini kullanmayacağınızdan emin değilsiniz. Sonunda SSMS 2012+ ile çalışmasını sağlaması harika çalışıyor.
Jonathan Fite


2

SqlSmash , SSMS 2012 ve 2014'te SQL'inizi (ve çok daha fazlasını) biçimlendirmenize izin veren ticari bir araçtır. Varsayılan klavye kısayolu (Ctrl + K, Ctrl + D) 'dir.
Yasal Uyarı: Ben onun arkasındaki geliştiriciyim.


Lütfen aracın ücretsiz olmadığını ekleyin.
ypercubeᵀᴹ

Ücretsiz bir topluluk sürümü var.
Jason Geiger
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.