Nhị phân lắp ráp được lưu trữ dưới dạng một đốm màu trong cơ sở dữ liệu, vì vậy nó được mang theo bất cứ nơi nào cơ sở dữ liệu đi. CLR chỉ được bật trong trường hợp - không có cài đặt dành riêng cho cơ sở dữ liệu nào cho việc đó.
Trong mọi trường hợp, tại sao bạn cố gắng làm điều này?
(Tôi không cố gắng tranh luận; tôi chỉ muốn nghe những động cơ liên quan, bởi vì có lẽ vấn đề có thể được giải quyết theo một cách khác đáp ứng nhu cầu của bạn.)
Không có cách nào để thực hiện điều này một cách dễ dàng, ngoại trừ việc đưa tổ hợp vào cơ sở dữ liệu dùng chung.
Điều đó nói rằng, tôi sẽ nghĩ rằng sẽ thuận lợi khi nắm lấy kiến trúc tập trung vào cơ sở dữ liệu, trừ khi có một tình huống cụ thể có lý do rất thuyết phục để tập trung. Lý do tại sao việc đặt hội đồng (hoặc bất cứ điều gì cho vấn đề đó) bên ngoài cơ sở dữ liệu sẽ tạo ra sự phụ thuộc trong môi trường của bạn. Đây chính xác là cách tiếp cận ngược lại mà Microsoft đang hướng tới với Cơ sở dữ liệu có chứa bắt đầu từ SQL Server 2012.
Khi bạn bắt đầu cần sử dụng các tính năng như sao chép hoặc phân cụm, sự phụ thuộc này có thể có khả năng tăng thêm độ phức tạp rất lớn cho việc triển khai, mà còn để khắc phục sự cố và quy trình chuyển đổi dự phòng.
Kiến trúc này ít rõ ràng hơn đối với những người không quen thuộc với hệ thống (nghĩa là nó ít tự khám phá hơn và ít tự ghi lại tài liệu hơn).
Nếu bạn cuối cùng yêu cầu bảo mật khác nhau trong các cơ sở dữ liệu khác nhau hoặc bất kỳ điều gì liên quan đến biến thể, bạn sẽ ở trong một thế giới bị tổn thương.
Nếu các cơ sở dữ liệu này được triển khai cho khách hàng (nghe có vẻ như không có, nhưng tôi sẽ nói điều này cho đầy đủ), điều này sẽ làm tăng thêm sự phức tạp cho quy trình triển khai, bảo trì và xử lý sự cố.
Vì tất cả các cơ sở dữ liệu sẽ chia sẻ mã này, nếu có bất kỳ lỗi nào được đưa ra (hoặc đã sửa!), Điều này có khả năng phá vỡ tất cả các ứng dụng dựa trên cơ sở dữ liệu. Kiểm tra đơn vị toàn diện sẽ là một phải tuyệt đối.
Nếu bạn có một số cơ sở dữ liệu cần cùng chức năng, có nhiều cách khác để giảm số lượng sao chép liên quan, mà tôi cho là điểm của bài tập. Ngay cả một hội đồng CLR khá phức tạp cũng sẽ không chiếm nhiều dung lượng lưu trữ vật lý so với dữ liệu trong cơ sở dữ liệu (hầu như luôn luôn), vì vậy tôi không thấy đó là một đối số hợp lệ trừ khi bạn có hàng ngàn cơ sở dữ liệu nhỏ cần điều này hội,, tổ hợp.
Những gì bạn có thể làm là sửa đổi các phần khác của quy trình triển khai cho các cơ sở dữ liệu này để giảm trùng lặp nguồn. Ví dụ: xây dựng và triển khai lắp ráp từ vị trí phổ biến của mã CLR trong kiểm soát nguồn. Hoặc, tạo một tập lệnh triển khai lắp ráp tương tự vào cơ sở dữ liệu. Tự động hóa phần này của mọi thứ càng nhiều càng tốt, và nó sẽ không phải là một vấn đề lớn.
Tôi đồng ý rằng những gì tôi đề xuất là một sự đánh đổi, bởi vì vẫn sẽ có một số trùng lặp, nhưng điều đó phải được cân bằng với những tiêu cực liên quan đến việc thực hiện một kiến trúc không tuân theo tiêu chuẩn quy định. Chỉ có bạn mới có thể quyết định những gì phù hợp với môi trường của bạn.