TUYÊN BỐ TỪ CHỐI: Tôi biết rằng câu hỏi này đã được hỏi hàng trăm lần trước đây, nhưng tôi chỉ muốn kiểm tra xem có giải pháp nào dễ dàng hơn mà tôi có thể đã bỏ lỡ trước khi tôi tiếp tục và viết / lấy rất nhiều mã để thực hiện.
Phần mềm của chúng tôi sử dụng cơ sở dữ liệu ban đầu được thiết kế cho SQL Server 7 và do đó, tất cả các tập lệnh tạo ra nó không chỉ định bất kỳ đối chiếu rõ ràng nào cho bất kỳ cột ký tự nào. Thay vào đó, khi cơ sở dữ liệu được tạo / khôi phục thành SQL Server 2000 trở lên, mọi cột đều kế thừa đối chiếu cơ sở dữ liệu (điều này xảy ra SQL_Latin1_General_CP1_CI_AS
do đó là mặc định của SQL Server 7).
Về mặt lý thuyết, điều này sẽ không quá quan trọng, vì nếu cơ sở dữ liệu của chúng tôi được tạo từ đầu trên máy chủ của khách hàng, nó sẽ thừa hưởng đối chiếu máy chủ của khách hàng (thường là mặc định cài đặt hiện đại Latin1_General_CP1_CI_AS
) và mọi thứ chỉ hoạt động. Tuy nhiên, kịch bản này bị hỏng khi họ gửi cho chúng tôi bản sao lưu cơ sở dữ liệu hoặc chúng tôi gửi cho họ bản sao lưu cơ sở dữ liệu và chúng tôi hoặc họ gặp lỗi không khớp đối xứng đáng sợ mỗi khi mã cố truy cập vào bảng tạm thời, v.v.
Chúng tôi đã cố gắng giáo dục khách hàng cài đặt hoặc xây dựng lại các phiên bản SQL Server của họ để sử dụng đối chiếu ưa thích của chúng tôi, nhưng tất nhiên điều đó không luôn xảy ra và không phải lúc nào cũng có thể.
Các giải pháp liên quan đến việc tạo cơ sở dữ liệu mới và sao chép dữ liệu không thực sự thiết thực đối với chúng tôi, chúng tôi cần một "cây đũa thần" mà chúng tôi có thể vẫy tại cơ sở dữ liệu trực tiếp để sửa tất cả các cột tại chỗ mà không làm phiền dữ liệu. Tôi đang suy nghĩ về việc viết một tiện ích để làm điều này, nhưng vì nó sẽ là một công việc khá lớn, có ai có bất kỳ đề xuất đơn giản hơn không?