2011-11-01 47 views
6

Tôi muốn có thể có nhiều tập lệnh tạo bảng khác nhau được lưu và lưu trữ riêng biệt.Microsoft SQL Server Management Studio chạy tập lệnh từ bên trong một tập lệnh

Để xây dựng toàn bộ cơ sở dữ liệu, tôi sẽ có tệp .sql chính để gọi tất cả các tập lệnh theo thứ tự sao cho tất cả khóa ngoài trong bảng được tạo theo đúng thứ tự.

Sau đó tôi có thể tạo một tập lệnh để xóa toàn bộ cấu trúc bảng bằng cách thả tất cả chúng theo thứ tự ngược lại.

Có cách nào để thực hiện việc này không?

Trả lời

13

Sử dụng che khuất lệnh r: SQLCMD:

: r < filename>

Tách báo cáo Transact-SQL bổ sung và sqlcmd lệnh từ một file nào đó bằng cách vào bộ nhớ cache tuyên bố.

Say tạo kịch bản của bạn là createT1.sqlcreateT2.sql sau đó chủ của bạn sql tập tin sẽ là một cái gì đó như:

create database foo; 
go 

use foo; 
go 

:r createT1.sql 
:r createT2.sql 
go 

cú pháp này hoạt động trong SSMS là tốt, miễn là bạn kích hoạt chế độ SQLCMD, xem Editing SQLCMD Scripts with Query Editor . Ngoài ra thư viện dbutilsqlcmd hỗ trợ tiện ích mở rộng :r nếu bạn muốn nhúng phần này vào ứng dụng của mình.

1

Kể từ khi bạn đặt SSMS ngay trong tiêu đề của câu hỏi của bạn, tôi sẽ giả định rằng bạn muốn để có thể làm điều này từ đó.

Bạn có thể chạy SSMS ở chế độ SQLCMD. Điều này sẽ giúp bạn linh hoạt hơn nhiều. Bạn có thể xem bản trình diễn nhanh của nó here hoặc tìm thêm thông tin trên Microsoft's website.

Đối với chức năng dòng lệnh đơn giản, tôi sẽ đích thân đi với tập lệnh Powershell. Bạn có thể thêm vào các lệnh ghép ngắn Microsoft SQL để cho phép bạn kết nối với một máy chủ SQL hoặc bạn có thể cuộn của riêng bạn với SMO hoặc đi với một giải pháp của bên thứ ba, giống như SQLPSX nguồn mở.

+0

wow những câu trả lời này là tất cả tuyệt vời cảm ơn tất cả các bạn rất nhiều! chắc chắn sẽ được đăng ở đây rất nhiều nếu tất cả các bài trả lời là tốt hahaha ^. ^ – chilleo

Các vấn đề liên quan