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.
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
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
@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