Bazı Dış Keys biz denemek ve bazı kayıtları sildiğinizde bize referans hatalarını birkaç veriyor Cascade özelliği ayarlanmış, Sil yok bizim SQL Server 2005 DB de fark ettim.ON ile yabancı anahtar kısıtlaması cascade güncellememesi SİL Güncellenmesi?
Management Studio'yu kullanarak DROP
ve CREATE
SQL'lerine komut yazdım ancak CREATE
düzgün çalışmıyor gibi görünüyor.
DROP
:
USE [FootprintReports]
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK__SUBSCRIPTIONS_Reports]') AND parent_object_id = OBJECT_ID(N'[dbo].[_SUBSCRIPTIONS]'))
ALTER TABLE [dbo].[_SUBSCRIPTIONS] DROP CONSTRAINT [FK__SUBSCRIPTIONS_Reports]
ve elle On değeri bırakarak ve kendini yeniden sonra, GUI Sil değiştirirseniz, Sil CREATE
USE [FootprintReports]
GO
ALTER TABLE [dbo].[_SUBSCRIPTIONS] WITH CHECK ADD CONSTRAINT [FK__SUBSCRIPTIONS_Reports] FOREIGN KEY([PARAMETER_ReportID])
REFERENCES [dbo].[Reports] ([ID])
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[_SUBSCRIPTIONS] CHECK CONSTRAINT [FK__SUBSCRIPTIONS_Reports]
doğru değil güncellenmiş.
bir test olarak,Set Null
için GUI Sil kural oluşturma. Doğru bir şekilde düştü ve hatasız olarak yeniden oluşturuldu. Ben GUI içine döndüm, hala Sil Kural olarak
Set Null
gösteriyor.
Yanlış bir şey mi yaptım? veya ON DELETE CASCADE
kuralı eklemek için bir kısıtlamanın düzenlenmesinin başka bir yolu var mı?
hmm, şerefe. Buna bir bakacağım. –
Evet, sorun buydu. Bazı nedenlerle Management Studio hala eski değeri gösteriyordu. Uygulamayı kapatmak ve değişikliği görüntülemeden önce yeniden başlatmam gerekiyordu. Teşekkürler! –