मैं विभिन्न डेटाबेस के बीच स्कीमा को सिंक करने की कोशिश कर रहा हूं। असल में, मैंने कार्यों को चलाया-> दोनों डेटाबेस पर SQL सर्वर प्रबंधन स्टूडियो (2005) के साथ स्क्रिप्ट जेनरेट करें और आउटपुट को एक diff टूल के साथ तुलना कर रहा हूं।जेनरेट स्क्रिप्ट में SQL सर्वर चेक/नो चेक अंतर
किसी कारण से, एक स्क्रिप्ट कोई चेक, दोनों की कमी के बाद फिर से सक्षम किया जा रहा के साथ जांच और एक के साथ बाधा कहते हैं।
मैं पहली बार डेटाबेस के लिए मैं:
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
दूसरा डेटाबेस उत्पन्न
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
के रूप में तो मैं दो प्रश्न हैं:
अंत में एक ही परिणाम है ? (संपादित करें: ऐसा लगता है कि बहुत से लोगों को केवल दो लिपियों के पहले बयान मैं दोनों लिपियों की सम्पूर्णता के अंतिम परिणाम में दिलचस्पी है पर उठा रहे हैं।।)
अंत तो नतीजा वही है, प्रबंधन स्टूडियो अलग-अलग डेटाबेस के लिए उन्हें अलग-अलग क्यों उत्पन्न करता है?
नहीं है, हालांकि, यदि आप दो स्क्रिप्ट स्क्रिप्ट को देखते हैं, तो बाधा जोड़ने के तुरंत बाद, वैकल्पिक तालिका है [ डीबीओ]। [प्रोफाइल] कंसस्ट्रेंट की जांच करें [FK_Profile_OrganizationID] जाओ क्या उस बिंदु पर बाधाओं की जांच नहीं है? – Nathan
आपके उत्तर के दूसरे भाग के लिए, आप वास्तव में सही हैं कि is_not_trusted डेटाबेस में से किसी एक पर सेट है, न कि दूसरे पर। इसका क्या असर पड़ता है? – Nathan
इस आलेख को मिला: http://sqlblog.com/blogs/tibor_karaszi/archive/2008/01/12/non-trusted-constraints.aspx तो ऐसा लगता है कि बैच में दूसरा कथन केवल यह सुनिश्चित करता है कि बाधा सक्षम है, यह वास्तव में मौजूदा डेटा की जांच नहीं करता है। वास्तव में मौजूदा डेटा की जांच करने के लिए, मुझे तालिका बदलने की आवश्यकता है? चेक जांच के साथ सभी – Nathan