2013-05-28 5 views
37

मैंने VS2012 में डेटाबेस प्रोजेक्ट बनाया है। मैंने डेटाबेस संरचना जोड़ा। यह डेटाबेस प्रकाशित करने और तुलना करने के लिए ठीक काम करता है।वीएस2012 पोस्ट-परिनियोजन स्क्रिप्ट कई अन्य स्क्रिप्ट का संदर्भ देता है

अब प्रकाशित होने पर मैं डिफ़ॉल्ट डेटा के साथ स्वचालित रूप से कई तालिकाओं को लोड करना चाहता हूं।

मैंने INSERTएसक्यूएल प्रबंधन स्टूडियो से उत्पन्न बयान के साथ पांच स्क्रिप्ट फाइलें बनाई हैं। वे मेरे डेटाबेस प्रोजेक्ट में एक स्क्रिप्ट फ़ोल्डर में जोड़े गए थे।

फिर मैंने BuildAction=PostDeploy सेट किया। यह ठीक काम करता है। लेकिन किसी कारण से केवल PostDeploy पर एक स्क्रिप्ट सेट होना संभव है ....

मुझे एहसास है कि मैं सभी स्क्रिप्ट को एक फ़ाइल में ले जा सकता हूं। लेकिन मेरे पास बहुत कुछ है और कुछ आदेश बनाए रखने के लिए उन्हें अलग-अलग फाइलों में समूहित करना पसंद करेंगे।

मैंने फिर एक PostDeploy.sql फ़ाइल बनाई और वहां से अन्य सभी स्क्रिप्ट फ़ाइलों को संदर्भित करने का प्रयास किया। फ़ाइल शीर्षक दिशाओं देता है:

:r .\MyScript1.sql 
:r .\MyScript2.sql 
:r .\MyScript3.sql 
:r .\MyScript4.sql 
:r .\MyScript5.sql 

फ़ाइल गलत सिंटैक्स पर शिकायत:

Post-Deployment Script Template       
---------------------------------------------------------------------------- 
This file contains SQL statements that will be appended to the build script. 
Use SQLCMD syntax to include a file in the post-deployment script. 
Example:  :r .\myfile.sql 

तो मैं अपनी फ़ाइल लिखें।

उत्तर

74

यह पता चला कि विजुअल स्टूडियो ने मुझे गलत वाक्यविन्यास चेतावनियों के साथ बेवकूफ़ बना दिया! मेरा सेटअप पूरी तरह से मान्य था।

चेतावनियों से बचने के लिए फ़ाइल के अंदर कहीं भी क्लिक करें और "निष्पादन सेटिंग्स - SQLCMD मोड" चुनें।

SQLCMD मोड नामक एक टूलबार बटन भी एक ही काम कर रहा है। enter image description here

+0

यह Transact-SQL यह सोच कर कि यह एक सिंटैक्स त्रुटि है संपादक की समस्या का हल:

यहाँ मामले में मेनू आइटम आप उपकरण पट्टी बटन नहीं मिल सकता है। लेकिन एक एसएसडीटी परियोजना अभी भी निर्माण या तैनाती में विफल रहता है। – Pat

+0

विजुअल स्टूडियो को पूरी तरह से बंद करने का प्रयास करें। बिन और ओबीजे फ़ोल्डर्स, * .dbmdl, * .suo, और * .user फ़ाइलों को हटाकर अपने एसएसडीटी समाधान को साफ करें, फिर अपने एसएसडीटी समाधान को फिर से खोलें। अब आप अपनी परियोजना को बनाने/तैनात करने में सक्षम होना चाहिए। – TDN

+0

@Pat आउटपुट विंडो (त्रुटि सूची के बजाय) में एक नज़र डालें - आपको वहां वास्तविक त्रुटि दिखाई देनी चाहिए। मेरे मामले में यह था कि मेरी शामिल फाइलों में उनके पथों में रिक्त स्थान थे, और पूरे पथ को डबल-कोट्स में संलग्न करने की आवश्यकता थी। कोई सफाई/पुनरारंभ करने की आवश्यकता नहीं है। – sellotape

संबंधित मुद्दे