2015-02-19 16 views
5

Tôi đang sử dụng Visual Studio 2013 để quản lý tệp .sqlproj chứa lược đồ cơ sở dữ liệu của chúng tôi. Lược đồ đã được triển khai thành công hàng chục lần.SSDT Xuất bản lỗi khi tạo Xem trước xuất bản

Khi cố gắng xuất bản lên một cơ sở dữ liệu đích cụ thể, bước "Tạo bản xem trước xuất bản" có vẻ không thành công, nhưng không có lỗi nào được đưa ra. Kết quả từ xem trước bao gồm một số cảnh báo dự kiến:

  • Cột {...} đã được giảm xuống, mất dữ liệu có thể xảy ra
  • Nếu triển khai này được thực thi, thay đổi {...} có thể giới thiệu chạy lỗi -time trong {...}
  • triển khai này có thể gặp lỗi trong quá trình thực hiện vì thay đổi {...} bị chặn bởi {...} 's phụ thuộc trong cơ sở dữ liệu mục tiêu

tôi có không được chọn "Chặn triển khai gia tăng nếu mất dữ liệu có thể xảy ra".

Bản xem trước chỉ dừng lại và không có tập lệnh nào được tạo.

Trả lời

7

Điều này xảy ra khi có một thủ tục lưu trữ (hoặc xem hoặc ràng buộc hoặc đối tượng khác) trong cơ sở dữ liệu đích, không được bao gồm trong sqlproj của bạn, tham chiếu đến bảng sẽ bị thay đổi bằng cách triển khai sqlproj của bạn. SSDT dường như không thể xác định liệu thay đổi có an toàn hay không trừ khi điều giới thiệu được bao gồm trong sqlproj của bạn, và sau đó nó sai về phía an toàn bằng cách chặn việc triển khai.

Tắt tùy chọn "Chặn triển khai gia tăng nếu mất dữ liệu có thể xảy ra", tùy chọn này chỉ làm giãn các kiểm tra mất dữ liệu. Không có tùy chọn "Chặn triển khai gia tăng nếu các lỗi thời gian chạy có thể xảy ra".

Bạn có ba lựa chọn:

  1. add bất cứ điều gì được lưu trữ thủ tục, quan điểm, hoặc bất cứ điều gì từ cơ sở dữ liệu mục tiêu để sqlproj

  2. bạn bỏ chọn tùy chọn "Xác nhận triển khai" trong SSDT xuất bản tùy chọn (điều này là nguy hiểm trừ khi bạn biết các sprocs giới thiệu khác và biết rằng họ sẽ không phá vỡ)

  3. nếu bạn chắc chắn rằng mọi thứ cần tồn tại trong cơ sở dữ liệu đích được chứa i n sqlproj của bạn, bạn có thể bật tùy chọn "Thả đối tượng trong nhắm mục tiêu nhưng không phải trong nguồn"

0

Các mô hình cảnh báo cuối cùng dường như là hơn một cảnh báo:

triển khai này có thể gặp lỗi trong quá trình thực hiện vì những thay đổi để {...} bị chặn bởi {...} 's phụ thuộc vào cơ sở dữ liệu đích

dường như là thủ phạm đằng sau việc dừng phần còn lại của bản xem trước và tạo tập lệnh.

Điều thú vị là thay đổi giản đồ được giới thiệu sẽ không làm hỏng trình kích hoạt được tham chiếu trong đầu ra xem trước.

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