Tôi đang sử dụng dự án cơ sở dữ liệu SQL 2008 (trong phòng thu trực quan) để quản lý lược đồ và dữ liệu thử nghiệm ban đầu cho dự án của tôi. Dự án atabase sử dụng triển khai bài đăng bao gồm một số tập lệnh khác sử dụng cú pháp ": r" của SQLCMD.Logic điều kiện trong kịch bản lệnh PostDeployment.sql sử dụng SQLCMD
Tôi muốn có thể có điều kiện bao gồm các tệp nhất định dựa trên biến SQLCMD. Điều này sẽ cho phép tôi chạy dự án nhiều lần với bản dựng hàng đêm của chúng tôi để thiết lập các phiên bản khác nhau của cơ sở dữ liệu với các cấu hình khác nhau của dữ liệu (cho một hệ thống nhiều người thuê).
Tôi đã thử những điều sau đây:
IF ('$(ConfigSetting)' = 'Configuration1')
BEGIN
print 'inserting specific configuration'
:r .\Configuration1\Data.sql
END
ELSE
BEGIN
print 'inserting generic data'
:r .\GenericConfiguration\Data.sql
END
Nhưng tôi nhận được một lỗi biên dịch: SQL01260: Một lỗi phân tích cú pháp gây tử vong đã xảy ra: Script.PostDeployment.sql
Có ai nhìn thấy lỗi này hay quản lý để cấu hình kịch bản postdeployment của họ để được linh hoạt theo cách này? Hoặc tôi đang đi về điều này một cách sai lầm hoàn toàn?
Cảm ơn, Rob
T.B. Tôi cũng đã thử thay đổi điều này xung quanh để đường dẫn đến tệp là một biến, similar to this post. Nhưng điều này mang lại cho tôi một lỗi nói rằng đường dẫn không chính xác.
Với yêu cầu tuyên bố GO, tôi đã làm việc xung quanh này trước bằng cách thực hiện báo cáo kết quả như SQL động. Đó không phải là một dự án MS Database. YMMV. – fiat