2009-01-03 26 views
5

Làm thế nào bạn có thể tìm thấy các phụ thuộc của một bảng trên cơ sở dữ liệu?Để tìm sự phụ thuộc của các đối tượng trên nhiều cơ sở dữ liệu?

Thông thường sp_depends sẽ cung cấp thông tin cho tất cả các đối tượng phụ thuộc vào một đối tượng cụ thể hoặc thông qua một công cụ GUI bạn có thể thấy nó theo cách có cấu trúc hơn. Bây giờ phụ thuộc được hiển thị bởi các phương pháp này được giới hạn trong một cơ sở dữ liệu duy nhất - nếu chúng ta có người phụ thuộc trong cơ sở dữ liệu khác thì sao?

Có truy vấn nào để làm điều đó không?

+0

Làm cách nào để bạn tạo phụ thuộc vào cơ sở dữ liệu? –

Trả lời

0

Tôi sẽ để lại nhiệm vụ tìm phụ thuộc chéo db cho người khác để viết về khi tôi định chạy ra khỏi cửa sáng nay nhưng muốn để lại ghi chú nhanh về sp_depends. Nó bị hỏng, đừng dùng nó. Nó nổi tiếng là không đáng tin cậy. Theo Microsoft "Sử dụng sys.dm_sql_referencing_entities và sys.dm_sql_referenced_entities thay vào đó" nó là trên đường ra. Đây là lý do tại sao sp_depends bị hỏng, nó dựa trên thứ tự sáng tạo. Giả sử bạn có hai thủ tục được lưu trữ, ProcA và ProcB. ProcB phụ thuộc vào ProcA. Nếu bạn tạo ra ProcA THEN tạo ra procB sp_depends sẽ báo cáo sự phụ thuộc, nhưng do hỗ trợ cho cuối ràng buộc, nếu bạn tạo ra ProcB, THEN tạo procA sp_depends sẽ không báo cáo sự phụ thuộc.

Đối với những gì đáng giá, có một công cụ tuyệt vời để báo cáo phụ thuộc đúng cách nhưng yêu thích của tôi cho đến thời điểm này, và nó sẽ xử lý phụ thuộc db chéo nếu bạn có quyền truy cập vào nó là Visual Studio Chuyên gia cơ sở dữ liệu. Nó khá chi tiêu nhưng nếu bạn có quyền truy cập vào nó có công cụ phụ thuộc tuyệt vời và hỗ trợ tái cấu trúc ánh sáng, bạn có thể thay đổi tên của cột, nó có thể tìm tất cả các khung nhìn và thủ tục, ngay cả trong nhiều dbs và cập nhật tên cột cho bạn phụ thuộc của bạn.

Đối với một giao diện đơn giản thay thế GUI đơn giản, ApexSql tạo ra một công cụ tốt đẹp. Về mặt tự do, bạn có thể tìm hoặc tạo một thủ tục lưu sẵn để thực hiện kiểm tra sự phụ thuộc cho bạn nhưng tôi không có bất kỳ liên kết nào để giúp bạn thực hiện điều đó ngay bây giờ.

+0

Thats hầu như không bị hỏng. Bạn đang nói rằng nếu các phụ thuộc không tồn tại khi nó được tạo ra thì sp_depends không báo cáo về nó. Đó là tiện ích hạn chế, chắc chắn, nhưng hầu như không 'bị hỏng'. – Brody

1

AFAIK, SQL Server không thể thực hiện việc này ngoài hộp.

Bạn rất có thể sẽ cần một chương trình của bên thứ ba như số SQL Dependency Tracker của Cổng Đỏ được cho là sẽ thực hiện việc này.

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