2013-05-28 20 views
37

Tôi đã tạo một dự án cơ sở dữ liệu theo số VS2012. Tôi đã thêm cấu trúc cơ sở dữ liệu. Nó hoạt động tốt để xuất bản và so sánh cơ sở dữ liệu.Kịch bản triển khai sau VS2012 đề cập đến một số tập lệnh khác

Bây giờ khi xuất bản, tôi muốn tự động tải nhiều bảng với dữ liệu mặc định.

Tôi đã tạo năm tệp tập lệnh với các câu lệnh INSERT được tạo từ SQL Management Studio. Chúng được thêm vào một thư mục Script trong dự án cơ sở dữ liệu của tôi.

Sau đó, tôi đặt BuildAction=PostDeploy. Điều này hoạt động tốt. NHƯNG từ một số lý do, chỉ có thể có MỘT tập lệnh được đặt thành PostDeploy ....

Tôi nhận ra mình có thể di chuyển tất cả tập lệnh vào một tệp. Nhưng tôi có rất nhiều và thực sự muốn nhóm chúng trong các tệp riêng biệt để duy trì một số thứ tự.

Sau đó, tôi đã tạo một tệp PostDeploy.sql và cố gắng tham chiếu tất cả các tệp tập lệnh khác từ đó. Phần đầu tập tin cung cấp cho hướng:

Post-Deployment Script Template       
---------------------------------------------------------------------------- 
This file contains SQL statements that will be appended to the build script. 
Use SQLCMD syntax to include a file in the post-deployment script. 
Example:  :r .\myfile.sql 

Vì vậy, tôi viết tập tin của tôi:

:r .\MyScript1.sql 
:r .\MyScript2.sql 
:r .\MyScript3.sql 
:r .\MyScript4.sql 
:r .\MyScript5.sql 

Các tập tin phàn nàn về cú pháp sai.

Trả lời

74

Nó bật ra rằng Visual Studio lừa tôi với cảnh báo cú pháp sai! Thiết lập của tôi hoàn toàn hợp lệ.

Để tránh cảnh báo, hãy nhấp chuột phải vào bất kỳ đâu bên trong tệp và chọn "Cài đặt thực thi - Chế độ SQLCMD".

Ngoài ra còn có nút thanh công cụ có tên là Chế độ SQLCMD cũng làm như vậy.

Đây là mục trình đơn trong trường hợp bạn không thể tìm thấy nút thanh công cụ: enter image description here

+0

này giải quyết vấn đề của trình biên tập Transact-SQL nghĩ rằng đó là một lỗi cú pháp. Nhưng một dự án SSDT vẫn không thể xây dựng hoặc triển khai. – Pat

+0

Cố gắng đóng hoàn toàn Visual Studio. Làm sạch giải pháp SSDT của bạn bằng cách xóa thư mục bin và obj, các tệp * .dbmdl, * .suo và * .user rồi mở lại giải pháp SSDT của bạn. Bây giờ bạn có thể xây dựng/triển khai dự án của mình. – TDN

+0

@Pat Hãy xem trong cửa sổ Output (thay vì danh sách lỗi) - bạn sẽ thấy lỗi thực tế ở đó. Trong trường hợp của tôi, đó là các tệp được bao gồm của tôi có dấu cách trong đường dẫn của chúng và toàn bộ đường dẫn cần được đặt trong dấu ngoặc kép. Không cần dọn dẹp/khởi động lại. – sellotape

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