मैंने 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
तो मैं अपनी फ़ाइल लिखें।
यह Transact-SQL यह सोच कर कि यह एक सिंटैक्स त्रुटि है संपादक की समस्या का हल:
यहाँ मामले में मेनू आइटम आप उपकरण पट्टी बटन नहीं मिल सकता है। लेकिन एक एसएसडीटी परियोजना अभी भी निर्माण या तैनाती में विफल रहता है। – Pat
विजुअल स्टूडियो को पूरी तरह से बंद करने का प्रयास करें। बिन और ओबीजे फ़ोल्डर्स, * .dbmdl, * .suo, और * .user फ़ाइलों को हटाकर अपने एसएसडीटी समाधान को साफ करें, फिर अपने एसएसडीटी समाधान को फिर से खोलें। अब आप अपनी परियोजना को बनाने/तैनात करने में सक्षम होना चाहिए। – TDN
@Pat आउटपुट विंडो (त्रुटि सूची के बजाय) में एक नज़र डालें - आपको वहां वास्तविक त्रुटि दिखाई देनी चाहिए। मेरे मामले में यह था कि मेरी शामिल फाइलों में उनके पथों में रिक्त स्थान थे, और पूरे पथ को डबल-कोट्स में संलग्न करने की आवश्यकता थी। कोई सफाई/पुनरारंभ करने की आवश्यकता नहीं है। – sellotape