Các thủ tục đã lưu trữ không được lưu trữ dưới dạng tệp, chúng được lưu trữ dưới dạng siêu dữ liệu và hiển thị với chúng tôi (cảm ơn Michael về lời nhắc về sysschobjs
) trong chế độ xem danh mục sys.objects
, sys.procedures
, sys.sql_modules
, v.v. Đối với một thủ tục được lưu trữ riêng lẻ, bạn có thể truy vấn định nghĩa trực tiếp bằng cách sử dụng các dạng xem này (quan trọng nhất là sys.sql_modules.definition
) hoặc sử dụng OBJECT_DEFINITION()
hoạt động như Nicholas đã chỉ ra
(mặc dù mô tả của anh ấy về syscomments
không hoàn toàn chính xác).
Để trích xuất tất cả các thủ tục được lưu trữ vào một tệp duy nhất, một tùy chọn sẽ là mở Object Explorer, mở rộng your server > databases > your database > programmability
và đánh dấu stored procedures
nút. Sau đó nhấn F7 (Xem> Chi tiết Trình khám phá Đối tượng
). Ở phía bên phải, hãy chọn tất cả các quy trình bạn muốn, sau đó nhấp chuột phải, script stored procedure as > create to > file
. Thao tác này sẽ tạo ra một tệp duy nhất với tất cả các quy trình bạn đã chọn. Nếu bạn muốn một tệp duy nhất cho mỗi thủ tục, bạn có thể sử dụng phương pháp này bằng cách chỉ chọn một thủ tục tại một thời điểm, nhưng điều đó có thể khá tẻ nhạt. Bạn cũng có thể sử dụng phương pháp này để viết tất cả các thủ tục liên quan đến kế toán vào một tệp, tất cả các thủ tục liên quan đến tài chính vào một tệp khác, v.v.
Một cách dễ dàng hơn để tạo chính xác một tệp cho mỗi quy trình được lưu trữ là sử dụng Tạo Trình hướng dẫn tập lệnh
- một lần nữa, bắt đầu từ Object Explorer - nhấp chuột phải vào cơ sở dữ liệu của bạn và chọn Tasks > Generate scripts
. Chọn Select specific database objects
và kiểm tra Stored Procedures
cấp cao nhất hộp. Bấm tiếp. Đối với đầu ra, hãy chọn Save scripts to a specific location
, Save to file
và Single file per object.
Các bước này có thể hơi khác một chút tùy thuộc vào phiên bản SSMS của bạn.