2012-11-14 48 views
5

ऐसा लगता है कि Visual Studio Database ProjectSQLCMD -variables एक स्कीमा-तुलना कर रहा है।क्या विजुअल-स्टूडियो स्कीमा-तुलना में तुलना करने वाले SQLCMD-Variables को पार्स करने का कोई विकल्प है?

मेरे सभी समानार्थी जैसी

CREATE SYNONYM [dbo].[addressesExtDB] FOR [$(ExtDB)].[dbo].[addresses]; 

दिखता है, लेकिन वे डेटाबेस से अलग रूप में सूचित किया रहते हैं।

जब मैं सही ढंग से करने के लिए सेट कर दिया जाता सही 'Specify SQLCMD Variabeles...' -settings जहां वर ExtDB 'ExtDBnn' डेटाबेस में जिसके परिणामस्वरूप Synonym के लिए निर्धारित है के साथ एक स्कीमा अद्यतन कार्य करें:

CREATE SYNONYM [dbo].[addressesExtDB] FOR [ExtDBnn].[dbo].[addresses]; 

एक recompare कार्यों झूठा के रूप में सभी समानार्थी से पता चलता फिर से अलग तो तुलना sqlcmd-variabeles को पार्स करना चाहिए और डेटाबेस के साथ तुलना करने के लिए परिणामों का उपयोग करना चाहिए। क्या मुझे यह करने या कुछ करने का विकल्प याद आ रहा है, या क्या आपको एक ही समस्या का अनुभव हुआ और किसी भी तरह समाधान मिला?

उत्तर

0

नहीं, वीएस में स्कीमा तुलना में चर को पारित नहीं किया गया है (आप इस परियोजना में अपना योगदानकर्ता जोड़कर इसे सत्यापित कर सकते हैं)।

दिलचस्प बात यह है कि, SqlPackage.exe का उपयोग करते समय, चर केवल स्रोत के लिए पास किए जाते हैं, लक्षित नहीं होते हैं।

जब इसका सामना करना पड़ा, तो मैंने डाटाबेस नाम -> परिवर्तनीय प्रतिस्थापन डेटाबेस से प्राप्त एक .dacpac फ़ाइल में समाप्त कर दिया - सबकुछ उस तरह से काम करता है, भले ही यह काफी हैक हो।

-1

प्रोजेक्ट सेटिंग्स में वेरिएबल के लिए डिफ़ॉल्ट सेट करें। तब SchemaCompare मान लेंगे कि वे बराबर हैं।

SQLCMD VARIABLES

Schema-Compare without sqlcmd variable Default

Schema-Compare with sqlcmd variable Default

यदि यह नहीं है कि तुम क्या आप मुझे जानते हैं और कुछ स्पष्टीकरण प्रदान दे सकता है पर मिल रहा है? चीयर्स