Định dạng SQL trong SQL Server Management Studio


250

Trong Visual Studio và các IDE khác, bạn có thể dễ dàng tự động định dạng mã của mình bằng phím tắt, thông qua menu hoặc tự động khi bạn nhập.

Tôi đã tự hỏi nếu có một cách để kích hoạt tính năng tiêu chuẩn này trong SQL Server Management Studio?

Tôi đang làm việc với một số procs được lưu trữ lớn, là một mớ hỗn độn của SQL được định dạng kém và thật tuyệt nếu tôi có thể chỉ cần "Chọn tất cả -> Định dạng SQL"


1
SQLinForm cung cấp tính năng Hotkey
Guido

1
giờ đây nó có một trình định dạng trực tuyến miễn phí: sqlinform.com/sql_formatter_online.html
Guido


Cập nhật Q thành chủ đề
Andrew

Câu trả lời:


270

Câu trả lời muộn, nhưng hy vọng có giá trị: Trình định dạng T-SQL của Poor Man là một trình định dạng T-SQL mã nguồn mở (miễn phí) với hỗ trợ tập lệnh / tập lệnh T-SQL hoàn chỉnh (mọi DDL, bất kỳ DML nào), Plugin SSMS, hàng loạt dòng lệnh định dạng, và các tùy chọn khác.

Nó có sẵn để sử dụng ngay lập tức / trực tuyến tại http://poorsql.com và hôm nay đã tốt nghiệp "phiên bản 1.0" (phiên bản beta được vài tháng), vừa nhận được hỗ trợ cho các MERGEtuyên bố, OUTPUTmệnh đề và các nội dung khó hiểu khác .

Bổ trợ SSMS cho phép bạn đặt phím nóng của riêng mình (mặc định là Ctrl- K, Ctrl- F, để khớp với Visual Studio) và định dạng toàn bộ tập lệnh hoặc chỉ mã bạn đã chọn / tô sáng, nếu có. Định dạng đầu ra là tùy chỉnh.

Trong SSMS 2008, nó kết hợp độc đáo với ý nghĩa intelli tích hợp, cung cấp hiệu quả ít nhiều chức năng cơ bản giống như SQL Prompt của Red Gate (dĩ nhiên, SQL Prompt có thêm nội dung, như đoạn trích, kịch bản đối tượng nhanh, Vân vân).

Yêu cầu phản hồi / tính năng được chào đón nhiều hơn, xin vui lòng cho nó một vòng xoáy nếu bạn có cơ hội!

Tiết lộ: Điều này có lẽ đã rõ ràng nhưng tôi đã viết thư viện / công cụ / trang web này, vì vậy câu trả lời này cũng là tự quảng cáo không biết xấu hổ :)


2
Trên máy chủ SQL 2012, phím tắt Ctrl + K mặc định, Ctrl + F không hoạt động vì nó cho biết nó đã bị ràng buộc với Định dạng lựa chọn . Nó hoạt động sau khi thay đổi nó từ DataWarehouse Designer::Ctrl+k, Ctrl+fthành Global::Ctrl+k, Ctrl+j.
Marco Lackovic

5
xem các gợi ý cho SSMS 2014 instalations stackoverflow.com/questions/23303026/NH
Alexander Sigachov

2
Công cụ tuyệt vời nhưng không tương thích với 2016 RTM
dmeglio

1
@ dman2306 - trình cài đặt tương thích với năm 2016 (và 17) hiện có sẵn.
Tao

2
@Jordan: trong Windows 10, .Net Framework 3.5 SP1 (bao gồm .Net 2.0) là một tính năng tùy chọn của windows, có thể được bật trong màn hình / chức năng "Bật hoặc tắt tính năng của Windows". Nó được gọi là ".NET Framework 3.5 (bao gồm .NET 2.0 và 3.0)" và nó nằm ngay đầu danh sách các tính năng tùy chọn - điều này không phù hợp với bạn? (vâng, xin lỗi, yêu cầu Net 2.0 trong ngày này và tuổi có lẽ là không hợp lý ... Created Issue github.com/TaoK/PoorMansTSqlFormatter/issues/199 để theo dõi)
Tao

137

Có một mẹo đặc biệt tôi phát hiện ra một cách tình cờ.

  1. Chọn truy vấn bạn muốn định dạng.
  2. Ctrl+ Shift+ Q(Điều này sẽ mở truy vấn của bạn trong trình thiết kế truy vấn)
  3. Sau đó, chỉ cần đi OK Voila! Trình thiết kế truy vấn sẽ định dạng truy vấn của bạn cho bạn. Hãy cẩn thận là bạn chỉ có thể làm điều này cho các câu lệnh và không phải là mã thủ tục, nhưng nó tốt hơn là không có gì.

9
Mẹo hay. Đáng buồn thay, trong khi phương pháp này không hoạt động, nó làm một công việc khá kém. Nhưng ít nhất có một cái gì đó dựng sẵn.
John Homer

Nó được định dạng nhưng không phải là cách mong đợi. Dù sao một cái gì đó tốt hơn không có gì :) ..... Cảm ơn vì tiền boa.
Jaini Naveen

2
Chà, theo như tôi có thể nói, mặc dù nó không thực sự làm công việc tốt nhất, nhưng nó làm một cái gì đó, và nó không có gì, và bạn không phải trả tiền cho nó. Nhưng chỉ có một người nghĩ rằng đánh dấu nó là hữu ích. Tôi thực sự ngạc nhiên, tôi nghĩ rằng tôi đã chốt cái này ;-)
Justin

1
Tôi phát hiện ra rằng, tương tự, các truy vấn được định dạng khi dán vào Chế độ xem mới. Nhưng, cái này sạch hơn nhiều ... +1.
Feckmore

16
điều này sẽ chỉ hoạt động nếu nội dung của truy vấn có thể biểu thị bằng đồ họa.
kbvishnu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.