SQL Server Management Studio에서 SQL 형식 지정


250

Visual Studio 및 기타 IDE에서는 키보드 단축키, 메뉴를 통해 또는 입력 할 때 자동으로 코드를 쉽게 자동 서식 지정할 수 있습니다.

SQL Server Management Studio에서이 표준 기능을 활성화 할 수있는 방법이 아직 없는지 궁금합니다.

형식이 잘못된 SQL의 엉망인 대형 저장 프로 시저로 작업하고 있으며 "모두 선택-> 형식 SQL"로 이동하면 좋을 것입니다.


1
SQLinForm은 단축키 기능을 제공합니다
Guido

1
: 지금은 무료 온라인 포맷터가 sqlinform.com/sql_formatter_online.html
귀도


Q가 주제가되도록 업데이트
Andrew

답변:


270

늦게 대답했지만 바라는 가치가있는 : The Poor Man 's T-SQL Formatter 는 완전한 T-SQL 배치 / 스크립트 지원 (모든 DDL, 모든 DML), SSMS 플러그인, 명령 줄 대량을 갖춘 오픈 소스 (무료) T-SQL 포맷터입니다. 포맷터 및 기타 옵션.

http://poorsql.com 에서 즉시 / 온라인으로 사용할 수 있으며 , 지금 막 "버전 1.0"(몇 달 동안 베타 버전)으로 전환하여, MERGE문장, OUTPUT조항 및 기타 까다로운 것들에 대한 지원을 얻었 습니다 .

SSMS 추가 기능을 사용하면 고유 한 핫키 (기본값은 Ctrl- K, Ctrl- F, Visual Studio와 일치)를 설정하고 전체 스크립트 또는 선택한 / 강조한 코드 (있는 경우)의 형식을 지정할 수 있습니다. 출력 형식은 사용자 정의 할 수 있습니다.

SSMS 2008에서는 내장 된 인텔리전스 기능과 훌륭하게 결합되어 Red Gate의 SQL Prompt와 거의 동일한 기본 기능을 효과적으로 제공합니다 (SQL Prompt는 스 니펫, 빠른 개체 스크립팅, 기타).

피드백 / 기능 요청은 환영 이상입니다. 기회가되면 소용돌이를주십시오!

공개 : 이것은 아마도 분명하지만 아마도이 라이브러리 / 도구 / 사이트를 작성 했으므로이 답변은 부끄러운 자체 홍보 :)


2
SQL Server 2012에서 기본 Ctrl + K, Ctrl + F 바로 가기는 이미 형식 선택에 바인딩되어 있으므로 작동하지 않습니다 . 에서 DataWarehouse Designer::Ctrl+k, Ctrl+f로 변경 한 후 작동했습니다 Global::Ctrl+k, Ctrl+j.
Marco Lackovic

5
SSMS 2014 설치에 대한 힌트를 참조하십시오 stackoverflow.com/questions/23303026/…
Alexander Sigachov 2016 년

2
훌륭한 도구이지만 2016 RTM과 호환되지 않음
dmeglio

1
@ dman2306-2016 및 17과 호환되는 설치 프로그램을 사용할 수 있습니다.
Tao

2
@Jordan : Windows 10에서 .Net Framework 3.5 SP1 (.Net 2.0 포함)은 Windows의 선택적 기능이며 "Windows 기능 켜기 또는 끄기"화면 / 기능에서 활성화 할 수 있습니다. ".NET Framework 3.5 (.NET 2.0 및 3.0 포함)"라고하며 선택적 기능 목록의 맨 위에 있습니다.이 기능이 작동하지 않습니까? (예, 죄송합니다.이 시대에 .Net 2.0을 요구하는 것은 아마 합리적이지 않습니다 ... 생성 된 문제 github.com/TaoK/PoorMansTSqlFormatter/issues/199 추적)
Tao

137

우연히 발견 한 특별한 속임수가 있습니다.

  1. 서식을 지정할 쿼리를 선택하십시오.
  2. Ctrl+ Shift+Q (쿼리 디자이너에서 쿼리를 엽니 다)
  3. 그런 다음 OK Voila! 쿼리 디자이너가 쿼리 형식을 지정합니다. 주의 사항은 절차 코드가 아닌 명령문에 대해서만이 작업을 수행 할 수 있지만 아무것도 아닌 것보다 낫다는 것입니다.

9
좋은 팁. 안타깝게도이 방법은 효과가 있지만 상당히 좋지 않습니다. 그러나 최소한 무언가가 내장되어 있습니다.
John Homer

포맷되었지만 예상 한 방법은 아닙니다. 어쨌든 무언가가 아무것도 아닌 것보다 낫습니다 :) ..... 팁 주셔서 감사합니다.
Jaini Naveen

2
글쎄, 내가 알 수있는 한, 그것은 실제로 최선의 일을하지는 않지만, 무언가를하고, 즉시 사용하며, 당신은 그것을 지불 할 필요가 없습니다. 그러나 오직 한 사람 만이 유용하다고 생각했습니다. 나는 정말로 이것을 놀라게했다, 나는이 쪽의 말뚝이 있다고 생각했다 ;-)
Justin Justin

1
마찬가지로 새보기에 붙여 넣을 때 쿼리 형식이 지정됩니다. 그러나 이것은 훨씬 깨끗합니다 ... +1.
Feckmore

16
이것은 쿼리 내용이 그래픽으로 표현 될 수있는 경우에만 작동합니다.
kbvishnu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.