दिलचस्प पोस्ट
क्या 64-बिट C # में एक 64-बिट पूर्णांक है? अनिर्धारित व्यवहार के लिए निरंतर अभिव्यक्ति का बहिष्कार क्यों होता है? HttpServletRequest – संदर्भ URL प्राप्त करने के लिए कैसे? tableFooterView गुण तालिका दृश्य के नीचे स्थित पाद लेख को ठीक नहीं करता है C ++ में घड़ी () का उपयोग कैसे करें मैं सी में ओओ-शैली बहुरूपता कैसे अनुकरण कर सकता हूं? संरचनाओं के एक वेक्टर के साथ std :: sort का उपयोग कैसे करें और फंक्शन की तुलना करें? पूर्णांक आवरण वस्तु केवल वही उदाहरण साझा करती है, जो कि 127 के भीतर ही होती है? JavaFX 2 कस्टम पॉपअप फलक ऐस के लिए लिस्प का उपयोग क्यों किया जाता है? क्या हम एक अंतरफलक का उद्देश्य बना सकते हैं? स्वतः पूर्ण होने वाले चयनित आइटम का मूल्य कैसे प्राप्त करें स्वत: पूर्णांक = 'बंद' इनपुट प्रकार पासवर्ड पर काम नहीं कर रहा है और स्वत: पूर्ण करने के लिए इनपुट फ़ील्ड इसके ऊपर बना देता है पैसे से निपटने के लिए क्या मुझे NSDecimalNumber का उपयोग करना चाहिए? UIWebview के अंदर हैंडलिंग स्पर्श होता है

SQL सर्वर प्रबंधन स्टूडियो 2008 में "उत्पन्न स्क्रिप्ट" कार्य को कैसे स्वचालित कर सकता हूं?

मैं SQL सर्वर प्रबंधन स्टूडियो 2008 में स्क्रिप्ट पीढ़ी को स्वचालित करना चाहता हूं

अभी मैं क्या करता हूं:

  • मेरे डेटाबेस, कार्य, "लिपियों को उत्पन्न करें …" पर राइट क्लिक करें
  • मैन्युअल रूप से सभी आवश्यक निर्यात विकल्प चुनें और "ऑब्जेक्ट चुनें" टैब पर सभी का चयन करें
  • निर्यात फ़ोल्डर का चयन करें
  • आखिरकार "समाप्त करें" बटन दबाएं

क्या इस कार्य को स्वचालित करने का एक तरीका है?

संपादित करें: मैं निर्माण स्क्रिप्ट जनरेट करना चाहता हूं, लिपियों को परिवर्तित नहीं करना

वेब के समाधान से एकत्रित समाधान "SQL सर्वर प्रबंधन स्टूडियो 2008 में "उत्पन्न स्क्रिप्ट" कार्य को कैसे स्वचालित कर सकता हूं?"

ब्रैन विज़ुअल स्टूडियो 2008 SP1 टीम सूट से क्या उल्लेख कर रहा है डेटाबेस प्रकाशन विज़ार्ड का संस्करण 1.4 है। यह एसक्यूएल सर्वर 2008 के साथ स्थापित है (केवल पेशेवर?) \ Program Files \ Microsoft SQL Server \ 90 \ Tools \ Publishing \ 1.4। सर्वर एक्सप्लोरर से वीएस कॉल केवल यह कह रहा है। आप कमांड लाइन की तरह ही कार्यक्षमता प्राप्त कर सकते हैं:

sqlpubwiz help script 

मुझे नहीं पता कि अगर v1.4 में एक ही परेशानी है, जो v1.1 था (उपयोगकर्ताओं को भूमिका में बदल दिया गया है, बाधाओं को सही क्रम में नहीं बनाया गया है), लेकिन यह मेरे लिए एक समाधान नहीं है क्योंकि यह स्क्रिप्ट ऑब्जेक्ट नहीं करता है एसएसएमएस में टास्क-> जेनरेट स्क्रिप्ट्स विकल्प की तरह अलग-अलग फाइल करने के लिए मैं वर्तमान में डेटाबेस प्रकाशन विज़ार्ड (sqlpubwiz.exe) के लिए एक बेहतर प्रतिस्थापन के रूप में कार्य करने के लिए स्क्रिप्टियो के एक संशोधित संस्करण का उपयोग कर रहा हूं (एमएस एसएमओ एपीआई का उपयोग करता है)। यह वर्तमान में कमांड लाइन से लिखे जाने योग्य नहीं है, मैं भविष्य में उस योगदान को जोड़ सकता हूं।

स्क्रिप्टियो मूल रूप से बिल ग्रैजियानो के ब्लॉग पर पोस्ट किया गया था, लेकिन बाद में इसे बिल द्वारा कोडप्लेक्स के लिए जारी किया गया था और दूसरों द्वारा अपडेट किया गया था। SQL सर्वर 2008 के उपयोग के लिए संकलन कैसे करें, यह देखने के लिए चर्चा पढ़ें।

http://scriptio.codeplex.com/

संपादित करें: मैंने इसके बाद से यह करने के लिए रेडगाट के एसक्यूएल उत्पाद का उपयोग करना शुरू कर दिया है। यह सभी एसक्यूएल प्रकाशन विज़ार्ड के लिए बहुत अच्छा प्रतिस्थापन है। आप एक डेटाबेस, बैकअप या स्नैपशॉट को स्रोत के रूप में चुनते हैं, और फ़ोल्डर को आउटपुट स्थान के रूप में चुनते हैं और यह एक फ़ोल्डर संरचना में अच्छी तरह से सभी को ढंकाते हैं। ऐसा ही ऐसा प्रारूप होता है कि उनका दूसरा उत्पाद, एसक्यूएल सोर्स कंट्रोल, उपयोग करता है।

एसएसएमएस में स्क्रिप्ट पीढ़ी के मुकाबले एसक्लब पब्बिविज़ के पास बहुत सीमित विकल्प हैं इसके विपरीत एसएमओ के साथ उपलब्ध विकल्प लगभग बिल्कुल एसएसएमएस में मैच करते हैं, यह सुझाव दे रहा है कि यह शायद एक ही कोड है। (मुझे उम्मीद है कि एमएस ने इसे दो बार नहीं लिखा होगा!) एमएसडीएन पर ऐसे कई उदाहरण हैं, जो कि व्यक्तिगत वस्तुओं के रूप में स्क्रिप्टिंग टेबल दिखाते हैं। हालांकि यदि आप 'पूर्ण' स्कीमा के साथ सही ढंग से स्क्रिप्ट को सब कुछ चाहते हैं जिसमें 'डीआरआई' (घोषणात्मक रिवेक्शनल इन्टिग्रिटी) ऑब्जेक्ट्स जैसे विदेशी कुंजी होते हैं तो अलग-अलग स्क्रिप्टिंग टेबल्स व्यक्तिगत रूप से निर्भरता से काम नहीं करती है मैंने पाया कि यह सभी यूआरएन को इकट्ठा करने के लिए आवश्यक है और उन्हें एक सरणी के रूप में स्किटर को हाथ में लेना आवश्यक है। यह कोड, उदाहरण से संशोधित है, मेरे लिए काम करता है (हालांकि मुझे डर है कि आप इसे साफ कर सकते हैं और थोड़ा और टिप्पणी भी कर सकते हैं):

 using Microsoft.SqlServer.Management.Smo; using Microsoft.SqlServer.Management.Sdk.Sfc; ... // Connect to the local, default instance of SQL Server. Server srv = new Server(); // Reference the database. Database db = srv.Databases["YOURDBHERE"]; Scripter scrp = new Scripter(srv); scrp.Options.ScriptDrops = false; scrp.Options.WithDependencies = true; scrp.Options.Indexes = true; // To include indexes scrp.Options.DriAllConstraints = true; // to include referential constraints in the script scrp.Options.Triggers = true; scrp.Options.FullTextIndexes = true; scrp.Options.NoCollation = false; scrp.Options.Bindings = true; scrp.Options.IncludeIfNotExists = false; scrp.Options.ScriptBatchTerminator = true; scrp.Options.ExtendedProperties = true; scrp.PrefetchObjects = true; // some sources suggest this may speed things up var urns = new List<Urn>(); // Iterate through the tables in database and script each one foreach (Table tb in db.Tables) { // check if the table is not a system table if (tb.IsSystemObject == false) { urns.Add(tb.Urn); } } // Iterate through the views in database and script each one. Display the script. foreach (View view in db.Views) { // check if the view is not a system object if (view.IsSystemObject == false) { urns.Add(view.Urn); } } // Iterate through the stored procedures in database and script each one. Display the script. foreach (StoredProcedure sp in db.StoredProcedures) { // check if the procedure is not a system object if (sp.IsSystemObject == false) { urns.Add(sp.Urn); } } StringBuilder builder = new StringBuilder(); System.Collections.Specialized.StringCollection sc = scrp.Script(urns.ToArray()); foreach (string st in sc) { // It seems each string is a sensible batch, and putting GO after it makes it work in tools like SSMS. // Wrapping each string in an 'exec' statement would work better if using SqlCommand to run the script. builder.AppendLine(st); builder.AppendLine("GO"); } return builder.ToString(); 

एसक्यूएल सर्वर प्रबंधन ऑब्जेक्ट (एसएमओ) का प्रयोग आप लिपियों को सृजन सहित SQL Server 2005 प्रबंधन कार्यों को स्वचालित कर सकते हैं: http://msdn.microsoft.com/en-us/library/ms162169.aspx

मैंने स्कीमाज़ेन नामक एक ओपन सोर्स कमांड लाइन यूटिलिटी लिखा था जो यह करता है यह प्रबंधन स्टूडियो से पटकथा की तुलना में बहुत तेज है और इसका उत्पादन अधिक संस्करण नियंत्रण अनुकूल है यह स्कीमा और डेटा दोनों स्क्रीप्टिंग का समर्थन करता है

स्क्रिप्ट चलाने के लिए:

  schemazen.exe स्क्रिप्ट - सर्वर स्थानीयहोस्ट - डेटाबेस DB --scriptDir c: \ somedir 

फिर स्क्रिप्ट चलाने से डेटाबेस को पुनः बनाने के लिए:

  schemazen.exe बनाएँ - सर्वर स्थानीयहोस्ट - डेटाबेस DB --scriptDir c: \ somedir 

यदि आप एक डेवलपर हैं, तो निश्चित रूप से एसएमओ के साथ जाएं यहां स्क्रिप्टर क्लास का एक लिंक है, जो आपका प्रारंभिक बिंदु है:

स्क्रिप्टर क्लास

मुझे इन उत्तरों में से किसी में वर्णित SQLPSX के साथ पावरशेल्ले नहीं दिखाई देता है … मैं व्यक्तिगत रूप से इसके साथ नहीं खेला है लेकिन यह उपयोग करने के लिए सरल और आदर्श रूप से इस तरह के स्वचालन कार्यों के अनुकूल, जैसे कार्य के साथ:

 Get-SqlDatabase -dbname test -sqlserver server | Get-SqlTable | Get-SqlScripter | Set-Content -Path C:\script.sql Get-SqlDatabase -dbname test -sqlserver server | Get-SqlStoredProcedure | Get-SqlScripter Get-SqlDatabase -dbname test -sqlserver server | Get-SqlView | Get-SqlScripter 

(रेफरी: http://www.sqlservercentral.com/Forums/Topic1167710-1550-1.aspx#bm1168100 )

प्रोजेक्ट पृष्ठ: http://sqlpsx.codeplex.com/

इस दृष्टिकोण का मुख्य लाभ यह है कि यह डाटाबेस पब्लिशिंग विज़ार्ड की तरह एक सरल मौजूदा उपकरण का उपयोग करने की सुविधा और रखरखाव के साथ, सीधे एसएमओ का उपयोग करने की configurablity / customizability को जोड़ती है

उपकरण> विकल्प> डिज़ाइनर> तालिका और डेटाबेस डिजाइनर में 'ऑटो जेनरेट करें स्क्रिप्ट' के लिए एक विकल्प होता है जो आपके द्वारा सहेजते समय प्रत्येक परिवर्तन के लिए एक उत्पन्न करेगा।

आप इसे टी-एसक्यूएल कोड के साथ INFORMATION_SCHEMA तालिकाओं का उपयोग कर सकते हैं।

तीसरे पक्ष के उपकरण भी हैं – मुझे एपेक्स एसक्यूएल स्क्रिप्ट की तरह ठीक से उपयोग करने के लिए आप के बारे में बात कर रहे हैं। मैं इसे पूरी तरह से कमांड लाइन से चलाता हूँ

यदि आप Microsoft समाधान चाहते हैं तो आप कोशिश कर सकते हैं: Microsoft SQL Server डेटाबेस प्रकाशन विज़ार्ड 1.1

http://www.microsoft.com/downloads/details.aspx?FamilyId=56E5B1C5-BF17-42E0-A410-371A838E570A&displaylang=en

यह एक बैच प्रक्रिया बना जिसे आप स्क्रिप्ट को फिर से बनाने के लिए किसी भी समय चला सकते हैं।

मैं डीबी तुलनार का उपयोग कर रहा हूं – इसका निशुल्क और कोई उपद्रव स्क्रिप्ट पूरी डीबी नहीं है और यह दूसरे डीबी से तुलना कर सकते हैं और एक डिफ स्क्रिप्ट भी बना सकते हैं। विकास के लिए बहुत बढ़िया उत्पादन परिवर्तन स्क्रिप्ट http://www.dbcomparer.com/

मेरी आसान जरूरतों के लिए यह सरल कमांड लाइन टूल भी है I
http://mycodepad.wordpress.com/2013/11/18/export-ms-sql-database-schema-with-c/

यह एक संपूर्ण डीबी निर्यात कर सकता है, और यह एन्क्रिप्टेड वस्तुओं को निर्यात करने का प्रयास करता है। सब कुछ फ़ोल्डर्स और आसान फ़ाइल तुलना के लिए अलग एसक्यूएल फ़ाइलों में संग्रहीत है।

कोड जिथूब पर भी उपलब्ध है

विजुअल स्टूडियो 2008 SP1 टीमसूट से:

सर्वर एक्सप्लोरर / डेटा कनेक्शन्स टैब में, एक प्रदाता टूल को प्रकाशित किया गया है जो "माइक्रोसॉफ्ट एसक्यूएल सर्वर डाटाबेस पब्लिशिंग विज़ार्ड" के समान है, लेकिन जो एमएस एसक्यूएल सर्वर 2008 के साथ संगत है।

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

मैं इसे इसे बाद में फ़ाइल से लोड करने के लिए थोड़ा सा अजीब लगता है (खींचें और विंडो एक्सप्लोरर से ड्रॉप) क्योंकि मुझे समाधान एक्सप्लोरर में फ़ाइल दिखाई नहीं दे रही है।