SSMS 2012에서 T-SQL 형식화


39

이 Microsoft 문서에 따르면 :

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

SQL Server Management Studio 2012에서 ctrl + K를 사용하고 ctrl + D를 사용하여 SQL 문서를 형식화 할 수 있어야하지만 해당 콤보를 사용할 때 오류가 발생합니다.

키 조합 (Ctrl + K, Ctrl + D)은 현재 사용할 수없는 명령 (문서 형식)에 바인딩됩니다.

서식이 전혀없는 기존 SQL 문서를 수정하려고하므로 읽기가 매우 어렵습니다. 누구든지 문서 형식 지정 명령을 사용 가능하게 하여이 코드를 SQL 형식으로 만들 수있는 방법을 알고 있습니까?


나는 그 진술 Available only in the text editor이 음성을 명시 적으로 호출하지 않고 "질의 편집기가 아닌"이라고 말하는 기술 작가의 방법 이라고 생각한다
billinkc

1
@billinkc 나는 그것이 옳다고 생각하지 않습니다. 텍스트 편집기는 Transact-SQL 및 XML 모두에 사용되는 "쿼리 편집기"이며 XML을 처리 할 때 실제로는 쿼리 편집기가 아닙니다. 설명서가 다소 유망하다고 생각하고 Connect 항목에 대해 논평했습니다 .
Aaron Bertrand

답변:


42

키보드 조합 ( Ctrl+ K, Ctrl+ D)은 "포맷"을위한 것입니다. 프리티 파이어가 아니며 정확한 간격과 탭을 삽입하는 데 사용됩니다. Tools > Options > Text Editor > Transact-SQL > General/Tabs따라서 텍스트의 일부를 강조 표시하고 키보드 조합을 누르면 탭을 4 개의 공백으로 변환해야합니다 (삽입을 선택한 경우) 공백), 지정한 들여 쓰기 유형 등을 적용하십시오.

이 옵션은 코드를 더 읽기 쉽게하기위한 것이 아닙니다. 이것은 Management Studio가 현재 기본적으로 제공하는 기능이 아닙니다. 여러 가지 타사 옵션이 있지만 일부는 Management Studio 외부에 있습니다.

편집기에는 다양한 수준의 서식 지원을위한 추가 기능도 있습니다.

이제 메시지를받는 이유는 ...

키 조합 (Ctrl + K, Ctrl + D)은 현재 사용할 수없는 명령 (문서 형식)에 바인딩됩니다.

SSMS가 해당 키 조합을 다른 컨텍스트에 매핑했기 때문입니다. 당신이 방법 해야 다시는 여전히 "수정"일 경우에도, 당신이하고 싶은 일을하지 않을 - -이 "수정"을 할 수는 다음을 수행하는 것입니다 :

  1. 이동 Tools > Options > Environment > Keyboard
  2. Press shortcut keys:상자에 커서를 놓습니다
  3. 히트 Ctrl+ K, Ctrl+D
  4. 변경 Shortcut currently used by:에서 드롭 다운 DataWarehouse Designer에를Text Editor

    여기에 이미지 설명을 입력하십시오

  5. OK를 누릅니다

이제 키보드 조합을 텍스트 편집기에 매핑 해야 하지만 OK를 누른 후 Management Studio는 키보드 조합을 되돌립니다 (오류 메시지가 계속 나타납니다. 따라서 문제는 설명서 에서이 기능이 있다고 생각하지만 관리는 문제라고 생각합니다 Studio는 더 잘 알고 있으며 단순히 제공하지도 않습니다 (Microsoft는이 기능을 문서의 버그로 작성하여 도구의 단점이 아니라 문제를 해결할 것입니다). 미래에는 희망이있을 수 있지만 현재로서는 이것은 잘 알려져 있고 거의 무시되는 문제 입니다. 키보드 조합이 작동하는 XML에 대해서는 문서가 참조 하는 Formatting탭 이 단순히 존재하지 않음에 유의하십시오.

옵션 대화 상자 의 텍스트 편집기 섹션 에서 언어 의 서식 창에 지정된 언어의 들여 쓰기 및 공백 서식을 적용합니다 . 텍스트 편집기 및 특정 언어에서만 사용할 수 있습니다 .

SSMS가 기본적으로 제공하는 형식 옵션 유형에 대한 아이디어를 얻는 또 다른 방법 Tools > Customize > Commands > Edit > Add Command... > Format은 가능한 명령 목록을 살펴 보는 것입니다. 실제 언어에 대한 지식이 없다는 것을 나타내는 것은 없으므로 줄 바꿈을 삽입하거나 들여 쓰기를 추가하거나 괄호 등을 지원하는 위치를 알 수 없습니다.

여기에 이미지 설명을 입력하십시오

언어 별 형식을 지정하여 기존 T-SQL 코드를 더 읽기 쉽게하려면 SSMS에서 많은 정보를 얻지 못하고 다른 옵션을 찾아야합니다.


1
SSMS 2016에서 OP뿐만 아니라 Aaron이 설명한 것과 동일한 증상과 행동을 경험했습니다. 그러나 제대로 작동하도록 할 수있었습니다. 열쇠는 Ctrl+K, Ctrl+D먼저 Remove버튼을 사용하여 바인딩 된 모든 명령을 제거 한 다음 위에 정의 된대로 키보드를 바인딩하기 위해 Aaron의 4 단계 프로그램을 따릅니다 ( Tools > Options > Environment > Keyboard). Options모든 것이 설정되면 pasteboard.co/GDYkh3h.jpg 대화 상자 모양 의 스크린 샷이 있습니다.
Mass Dot Net

나는이 의견이 당신이 말한 것을 수행하여 나에게 도움이되기 때문에 대답으로 나열되지 않은 이유를 전혀 확신하지 못합니다.
Kristopher

12

나는 이것이 SSMS에서 가능하다고 생각하지 않습니다. 이 기능에 대한 연결 항목이 열렸습니다.

형식이 잘못된 SQL 코드에 개인적으로 사용하고 싶은 것은 가난한 SQL 의 웹 응용 프로그램입니다 . SQL 코드를 사양에 맞게 형식화하는 것이 정말 좋습니다. 원하는 경우 HTML을 생성합니다. 나는 SSMS 플러그인이나 그들이 광고하는 다른 결과물을 사용하지 않고, 항상 빠른 포맷을 위해 사이트를 방문한 다음 SSMS에 바로 복사 / 붙여 넣기를합니다.


Poor SQL에 대한 팁을 주셔서 감사합니다. 내 뒷주머니에 꽂아 두는 게 확실해!
Kris Gruttemeyer 2016 년

3
블로그의 코드를 형식화하는 데 유용한 또 다른 좋은 방법은 Simple-Talk의 SQL Prettifier 입니다.
Aaron Bertrand

따라서 Microsoft의 문서에서 형식을 지정할 수 있다고 말했지만 SSMS는 형식을 지정할 수 없습니까?

불쌍한 SQL에는 메모장 ++ 용 플러그인도 있습니다. 왜 SSMS 플러그인을 사용하지 않는지 잘 모르겠습니다. SSMS 2012+에서 마침내 작동하게되었으므로 이제는 잘 작동합니다.
조나단 Fite


2

SqlSmash 는 SSMS 2012 및 2014에서 SQL 등을 형식화 할 수있는 상용 도구입니다. 기본 키보드 단축키는 (Ctrl + K, Ctrl + D)입니다.
면책 조항 : 나는 그 뒤에있는 개발자입니다.


도구가 무료가 아님을 추가하십시오.
ypercubeᵀᴹ

무료 커뮤니티 버전이 있습니다.
Jason Geiger
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.