Tôi có một cơ sở dữ liệu hiện có sử dụng Arabic_CI_AS
đối chiếu, nhưng tôi cần chuyển đổi nó thành SQL_Latin1_General_CP1_CI_AS
đối chiếu mặc định cho máy chủ, nhưng vấn đề là khi tôi sử dụng lệnh sau:
USE master;
GO
ALTER DATABASE MyDB
COLLATE SQL_Latin1_General_CP1_CI_AS ;
GO
Nó cho tôi thông báo lỗi sau:
Msg 5075, Cấp 16, Trạng thái 1, Dòng 1
Đối tượng 'GetAllSuppliersInCompliance' phụ thuộc vào đối chiếu cơ sở dữ liệu. Đối chiếu cơ sở dữ liệu không thể thay đổi nếu một đối tượng ràng buộc lược đồ phụ thuộc vào nó. Loại bỏ các phụ thuộc vào đối chiếu cơ sở dữ liệu và sau đó thử lại hoạt động.Msg 5075, Cấp 16, Trạng thái 1, Dòng 1
Đối tượng 'GetTier1SupplierComplianceStatus' phụ thuộc vào đối chiếu cơ sở dữ liệu. Đối chiếu cơ sở dữ liệu không thể thay đổi nếu một đối tượng ràng buộc lược đồ phụ thuộc vào nó. Loại bỏ các phụ thuộc vào đối chiếu cơ sở dữ liệu và sau đó thử lại hoạt động. .....Msg 5072, Cấp 16, Bang 1, Dòng 1
THAY ĐỔI CƠ SỞ thất bại. Đối chiếu mặc định của cơ sở dữ liệu 'MyDB' không thể được đặt thành SQL_Latin1_General_CP1_CI_AS.
Vì vậy, tôi đã thử cách sau để vô hiệu hóa các ràng buộc tạm thời bằng cách sử dụng lệnh sau:
EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
Sau đó tôi đã thực hiện lệnh đầu tiên, tuy nhiên cùng một lỗi xuất hiện.