Tôi đang sử dụng db SQL Server db và sử dụng nhiều lượt xem (để sử dụng với trình vẽ O/R). Một ít phiền toái chút là tôi muốncách xử lý cập nhật lược đồ db khi sử dụng schemabinding và cập nhật thường
- schema sử dụng ràng buộc
- cập nhật với các kịch bản (để triển khai trên các máy chủ và đặt trong một hệ thống kiểm soát nguồn)
nhưng chạy vào vấn đề mà bất cứ khi nào tôi muốn thêm một cột vào một bảng, trước tiên tôi phải bỏ tất cả các khung nhìn tham chiếu đến bảng đó, cập nhật bảng và sau đó tạo lại các khung nhìn, ngay cả khi các khung nhìn sẽ không cần phải được cập nhật theo cách khác. Điều này làm cho các bản cập nhật của tôi dài hơn rất nhiều và cũng có thể, tìm kiếm sự khác biệt trong hệ thống kiểm soát nguồn, khó có thể thấy sự thay đổi thực sự có liên quan.
Có cách nào tốt hơn để xử lý việc này không?
Tôi cần vẫn có thể sử dụng các bản cập nhật sql đơn giản và có thể kiểm soát nguồn. Một trình tạo mã như được bao gồm trong SQL Server Management Studio sẽ hữu ích, nhưng tôi đã gặp vấn đề với SQL Server Management Studio ở chỗ nó có xu hướng tạo mã không chỉ định tên cho một số chỉ mục hoặc ràng buộc (mặc định). Nhưng tôi muốn có các dbs giống nhau khi tôi chạy các kịch bản của mình trên các hệ thống khác nhau, bao gồm cả tên của tất cả các đường viền vv, để tôi không phải nhảy qua các vòng lặp khi cập nhật các ràng buộc sau này.
Vì vậy, có lẽ một trình tạo mã SQL thông minh hơn sẽ là giải pháp?
công việc của tôi bây giờ là: "cannot ALTER 'XXX' because it is being referenced by object 'YYY'
"
- loại các
alter table
tuyên bố trong trình soạn thảo truy vấn - kiểm tra nếu tôi nhận được một tuyên bố báo lỗi như
- sử dụng SQL Server Managment Studio để kịch bản tôi
create
mã cho đối tượng tham chiếu - chèn một tuyên bố
drop
trước khi báo cáo kết quả hấp thụ và tạo ra tuyên bố sau - kiểm tra nếu phát biểu
drop
tạo ra lỗi và lặp lại
điều này làm phiền tôi, nhưng có lẽ tôi chỉ đơn giản là phải sống với nó nếu tôi muốn tiếp tục sử dụng bản cập nhật schemabinding và script ...
Ồ, tốt. Tôi đoán tôi sẽ sống với nó. Lý tưởng nhất là những gì tôi muốn là: a) không có thông báo lỗi nếu bảng cập nhật không thực sự ảnh hưởng đến quan điểm (ví dụ như thêm một cột mới không nên ảnh hưởng đến chỉ đọc xem trên bảng này) b) thông báo lỗi nếu bảng cập nhật (ví dụ như thả một cột được sử dụng trong một khung nhìn) Nhưng tôi đoán MSSQL không hoạt động theo cách đó (có thể vì lý do tốt ...) Cảm ơn bạn đã nhắc nhở về quyền! –