máy chủ sql #region


163

Tôi có thể tạo các vùng trong trình soạn thảo máy chủ sql (như #region#endregiontrong C #) không?

Câu trả lời:


272

Không thực sự, xin lỗi! Nhưng...

Thêm beginend.. với một nhận xét về các beginkhu vực tạo ra trông giống như ... một chút hack!

ảnh chụp màn hình của mã vùng kết thúc

Nếu không, bạn chỉ có thể mở rộng và thu gọn, bạn không thể ra lệnh những gì nên được mở rộng và thu gọn. Không phải không có công cụ của bên thứ ba như Gói công cụ SSMS .


4
Đảm bảo bạn đã bật Tuyên bố phác thảo trong Trình soạn thảo văn bản> Transact-SQL> Intellisense> Bật Intellisense
GatesReign

2
technet.microsoft.com/en-us/l Library / aa225998 (v = sql.80) .aspx . Mặc dù tất cả các câu lệnh Transact-SQL đều hợp lệ trong khối BEGIN ... END, một số câu lệnh Transact-SQL không nên được nhóm lại với nhau trong cùng một lô (khối câu lệnh). Bất cứ ai có thể cho tôi biết tại sao họ không nên được nhóm?
Jacob Phan

1
Hack hữu ích, nhưng đừng quên thêm gosau endcâu lệnh nếu bạn muốn tạo nhiều vùng / phần.
diễu hành

xuất sắc! Cảm ơn
khai thác

Khỏe! Nếu bạn chỉ có khối nhận xét. Bạn phải thêm một cái gì đó mà không bình luận trong. ví dụ: in
inon

12

(Tôi là nhà phát triển bổ trợ SSMSBoost cho SSMS)

Gần đây chúng tôi đã thêm hỗ trợ cho cú pháp này vào bổ trợ SSMSBoost của chúng tôi.

--#region [Optional Name]
--#endregion

Nó cũng có một tùy chọn để tự động "nhận diện" các vùng khi mở tập lệnh.


2
Không sao nhưng không hoạt động nhanh. Tôi phải đóng và mở lại tệp để thu gọn các vùng mới tạo.
Martin Capodici

4
Có một tùy chọn "vùng lặp lại", có sẵn trong menu SSMSBoost trên thanh công cụ. Vì vậy, không cần phải mở lại tập tin.
Andrei Rantsevich

Thật không may, điều này có một lỗi. Nếu các báo cáo mã đầu tiên trong khu vực được nhận xét thì khu vực đã kết thúc ở dòng mã nhận xét cuối cùng
Jeff

9

BEGIN ... END hoạt động, bạn chỉ cần thêm một phần bình luận. Cách dễ nhất để làm điều này là thêm một tên phần! Một lộ trình khác là thêm một khối bình luận. Xem bên dưới:

BEGIN  -- Section Name
/* 
Comment block some stuff  --end comment should be on next line
*/

 --Very long query
SELECT * FROM FOO
SELECT * FROM BAR
END


4

Đây chỉ là vấn đề sử dụng thụt lề văn bản trong trình soạn thảo truy vấn.

Chế độ xem mở rộng:

Mở rộng

Chế độ xem được thu gọn:

Sụp đổ


3

Không, #region không tồn tại trong ngôn ngữ T-SQL.

Bạn có thể lấy mã gấp bằng cách sử dụng các khối bắt đầu:

-- vùng của tôi
bắt đầu
    - mã ở đây
kết thúc

Tôi không chắc chắn tôi khuyên bạn nên sử dụng chúng cho việc này trừ khi mã không thể được tái cấu trúc chấp nhận bằng các phương tiện khác!


2

Tôi đã sử dụng một kỹ thuật tương tự như McVitie và chỉ trong các quy trình hoặc tập lệnh được lưu trữ khá dài. Tôi sẽ chia nhỏ một số phần chức năng như thế này:

BEGIN /** delete queries **/

DELETE FROM blah_blah

END /** delete queries **/

BEGIN /** update queries **/

UPDATE sometable SET something = 1

END /** update queries **/

Phương pháp này hiển thị khá đẹp trong studio quản lý và thực sự hữu ích trong việc xem xét mã. Các mảnh bị sụp đổ trông giống như:

BEGIN /** delete queries **/ ... /** delete queries **/

Tôi thực sự thích nó theo cách này bởi vì tôi biết rằng BEGIN trận đấu với ENDcách này.


1

Một lựa chọn khác là

nếu mục đích của bạn là phân tích truy vấn của bạn, Notepad + có trình bao bọc tự động hữu ích cho Sql.


Điều này thực sự giúp tôi ra ngoài. Cảm ơn bạn
Theotonio
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.