Tôi bao gồm câu trả lời này vì một câu hỏi mới được đánh dấu là trùng lặp.
Tôi đã từng phải so sánh hai cơ sở dữ liệu sản xuất và tìm thấy bất kỳ sự khác biệt lược đồ nào giữa chúng. Các mục quan tâm duy nhất là các bảng đã được thêm hoặc xóa và các cột đã được thêm, xóa hoặc thay đổi. Tôi không còn có các tập lệnh SQL mà tôi đã phát triển, nhưng điều tiếp theo là chiến lược chung. Và cơ sở dữ liệu không phải là SQL Server, nhưng tôi nghĩ chiến lược tương tự cũng được áp dụng.
Đầu tiên, tôi đã tạo ra những gì tốt nhất có thể được mô tả như là một cơ sở dữ liệu. Các bảng người dùng của cơ sở dữ liệu này chứa các mô tả dữ liệu được sao chép từ các bảng hệ thống của cơ sở dữ liệu sản xuất. Những thứ như Tên bảng, Tên cột, Kiểu dữ liệu và Độ chính xác. Có một mục nữa, Tên cơ sở dữ liệu, không tồn tại trong một trong các cơ sở dữ liệu sản xuất.
Tiếp theo, tôi đã phát triển các tập lệnh kết hợp các lựa chọn từ các bảng hệ thống của cơ sở dữ liệu sản xuất với việc chèn vào các bảng người dùng của cơ sở dữ liệu metadatabase.
Cuối cùng, tôi đã phát triển các truy vấn để tìm các bảng tồn tại trong một cơ sở dữ liệu nhưng không phải các bảng khác và các cột từ các bảng trong cả hai cơ sở dữ liệu chỉ có trong một cơ sở dữ liệu và các cột có định nghĩa không thống nhất giữa hai cơ sở dữ liệu.
Trong số khoảng 100 bảng và 600 cột, tôi đã tìm thấy một số điểm không nhất quán và một cột được xác định là một dấu phẩy động trong một cơ sở dữ liệu và một số nguyên khác. Cái cuối cùng đó hóa ra là một ơn trời, bởi vì nó đã khai quật được một vấn đề đã gây khó chịu cho một trong những cơ sở dữ liệu trong nhiều năm.
Mô hình cho siêu dữ liệu được đề xuất bởi các bảng hệ thống được đề cập. Các truy vấn không khó để xây dựng, chủ yếu xoay quanh nhóm và có số lượng (tên cơ sở dữ liệu) = 1.
Trong trường hợp của bạn, với 700 cơ sở dữ liệu sản xuất, bạn có thể muốn tự động hóa hai bước đầu tiên nhiều hơn tôi đã làm chỉ với hai cơ sở dữ liệu để so sánh. Nhưng ý tưởng là tương tự.