हम अपने SQL सर्वर 2005 DB है कि कुछ विदेशी कुंजी पर हटाएँ कास्केड संपत्ति सेट है, जो हमें निर्देशात्मक त्रुटियों की एक जोड़ी दे रहा है जब हम कोशिश करते हैं और कुछ रिकॉर्डों को नष्ट नहीं है में महसूस किया गया है।ऑन डिलीट कैस्केड के साथ एक विदेशी कुंजी बाधा अद्यतन नहीं कर रहा है?
प्रबंधन स्टूडियो का उपयोग करें मैंने DROP
और CREATE
एसक्यूएल को स्क्रिप्ट किया, लेकिन ऐसा लगता है कि CREATE
सही तरीके से काम नहीं कर रहा है।
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]
और 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]
मैं मैन्युअल रूप से पर का मूल्य जीयूआई में हटाएँ, छोड़ने और बहुत सारे के बाद बदलते हैं, पर हटाएँ सही ढंग से नहीं है अपडेट किया गया।
एक परीक्षण के रूप में, मैं Set Null
लिए जीयूआई के हटाएं नियम निर्धारित किया है। यह सही ढंग से गिरा दिया गया, और त्रुटि के बिना फिर से बनाया गया। यदि मैं जीयूआई में वापस आया, तो यह अभी भी हटाए गए नियम के रूप में Set Null
दिखा रहा है।
मैंने कुछ गलत किया है? या ON DELETE CASCADE
नियम जोड़ने के लिए बाधा को संपादित करने का कोई और तरीका है?
हम्म, चीयर्स। मैं उस पर एक नज़र डालूंगा। –
हाँ, यह मुद्दा था। किसी कारण से प्रबंधन स्टूडियो अभी भी पुराना मूल्य दिखा रहा था। मुझे ऐप बंद करना था और बदलाव को प्रदर्शित करने से पहले इसे पुनरारंभ करना पड़ा। धन्यवाद! –