Tôi đang cố đồng bộ hóa các lược đồ giữa các cơ sở dữ liệu khác nhau. Về cơ bản, tôi chạy các nhiệm vụ-> Tạo các kịch bản với SQL Server Management Studio (2005) trên cả hai cơ sở dữ liệu và đang so sánh đầu ra với một công cụ khác.Kiểm tra máy chủ SQL/chênh lệch NoCheck trong tập lệnh được tạo
Đối với một số lý do, một trong những kịch bản cho biết thêm các hạn chế WITH CHECK và một VỚI KHÔNG KIỂM TRA, tiếp theo là cả những hạn chế được tái kích hoạt.
Tôi cho cơ sở dữ liệu đầu tiên tôi nhận được:
ALTER TABLE [dbo].[Profile] WITH CHECK ADD CONSTRAINT [FK_Profile_OrganizationID] FOREIGN KEY([OrganizationID])
REFERENCES [dbo].[Organization] ([OrganizationID])
GO
ALTER TABLE [dbo].[Profile] CHECK CONSTRAINT [FK_Profile_OrganizationID]
GO
Cơ sở dữ liệu thứ hai tạo ra như
ALTER TABLE [dbo].[Profile] WITH NOCHECK ADD CONSTRAINT [FK_Profile_OrganizationID] FOREIGN KEY([OrganizationID])
REFERENCES [dbo].[Organization] ([OrganizationID])
GO
ALTER TABLE [dbo].[Profile] CHECK CONSTRAINT [FK_Profile_OrganizationID]
GO
Vì vậy, tôi có hai câu hỏi:
là cuối cùng cho kết quả như nhau ? (Edit: Dường như rất nhiều người dân đang nhặt trên chỉ là tuyên bố đầu tiên của hai kịch bản Tôi quan tâm đến kết quả cuối cùng của toàn bộ của cả hai kịch bản..)
Nếu cuối cùng kết quả là như nhau, tại sao Management Studio tạo ra chúng khác nhau cho các cơ sở dữ liệu khác nhau?
Tuy nhiên, nếu bạn nhìn vào hai kịch bản lệnh, ngay sau khi thêm ràng buộc, có ALTER TABLE [ dbo]. [Hồ sơ] KIỂM TRA CONSTRAINT [FK_Profile_OrganizationID] GO Không kiểm tra các ràng buộc tại điểm đó? – Nathan
Đối với phần thứ hai của câu trả lời của bạn, bạn thực sự đúng là is_not_trusted được đặt trên một trong các cơ sở dữ liệu, chứ không phải trên cơ sở dữ liệu khác. Điều này có ảnh hưởng gì? – Nathan
Tìm thấy bài viết này: http://sqlblog.com/blogs/tibor_karaszi/archive/2008/01/12/non-trusted-constraints.aspx Vì vậy, có vẻ như câu lệnh thứ hai trong lô chỉ đảm bảo rằng ràng buộc được bật, nó không thực sự kiểm tra dữ liệu hiện có. Để thực sự kiểm tra dữ liệu hiện có, tôi cần ALTER TABLE? VỚI KIỂM TRA KIỂM TRA KIỂM TRA tất cả các – Nathan