Tôi đã sửa đổi một bảng trung tâm trong cơ sở dữ liệu của mình và sp_depends thực sự trả về hàng trăm kết quả và tôi lo ngại một số quy trình được lưu trữ đó có thể không được biên dịch nữa sau khi tôi thay đổi.
Kiểm tra một thủ tục được lưu trữ là dễ dàng (tôi chỉ chạy lại tập lệnh thay đổi và xem liệu thao tác có thành công hay không), nhưng thực hiện điều đó trên 100 thủ tục thì hơi phức tạp.
Tôi biết tôi có thể sử dụng một tập lệnh như thế này để biên dịch lại tất cả các đối tượng của cơ sở dữ liệu của mình, nhưng hoạt động thực tế sẽ diễn ra vào lần tới khi thủ tục được lưu trữ được thực thi, không phải ngay lập tức, vì vậy có vẻ không phù hợp trong trường hợp của tôi.
Tôi cũng đã nghĩ rằng tôi có thể bỏ hoàn toàn tất cả các thủ tục được lưu trữ và tái cấu trúc lại cơ sở dữ liệu của mình với hệ thống kiểm soát nguồn của mình, nhưng tùy chọn đó, mặc dù khả thi, nhưng không thanh lịch lắm. Có cách nào tốt hơn để làm điều này?
Tôi đang sử dụng SQLServer 2008 R2 và các tập lệnh cơ sở dữ liệu của tôi được lưu trữ trong dự án cơ sở dữ liệu VS 2008.
Để làm rõ, tôi không ủng hộ người ta chỉ nên dựa vào cách tiếp cận này để kiểm tra mã. Cũng giống như trong c # bạn ngay lập tức phát hiện lỗi cú pháp trong các tệp phụ thuộc khác khi bạn viết mã (và sau đó sử dụng các chiến lược khác để kiểm tra, chẳng hạn như kiểm tra đơn vị, thường chậm hơn vài bậc), tôi nghĩ sẽ hợp lý khi phát hiện các phụ thuộc SQL lỗi trong vài giây thay vì phải chạy một bài kiểm tra chức năng đầy đủ, thường có thể mất vài giờ để hoàn thành.