এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও ২০০৮-এ আমি কীভাবে "স্ক্রিপ্টগুলি তৈরি করতে পারি?"


98

আমি এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও ২০০৮-এ স্ক্রিপ্ট জেনারেশনটি স্বয়ংক্রিয় করতে চাই।

এখনই আমি যা করি তা হ'ল:

  • আমার ডাটাবেস, টাস্কগুলিতে ডান ক্লিক করুন, "স্ক্রিপ্ট তৈরি করুন ..."
  • আমার প্রয়োজন সমস্ত রফতানি বিকল্পগুলি ম্যানুয়ালি সিলেক্ট করুন এবং সমস্ত "নির্বাচিত বস্তু" ট্যাবে নির্বাচন করুন
  • এক্সপোর্ট ফোল্ডারটি নির্বাচন করুন
  • অবশেষে "সমাপ্তি" বোতামটি টিপুন

এই কাজটি স্বয়ংক্রিয় করার কোনও উপায় আছে?

সম্পাদনা করুন: আমি তৈরি স্ক্রিপ্ট তৈরি করতে চাই , স্ক্রিপ্ট পরিবর্তন করি না।


আপনি কি উত্তর খুঁজে পেয়েছেন? আমি এটিও করতে চাই, আমি পাবলিশিংয়ের ব্যবহার করেছি, এটি শক্তভাবে সংরক্ষণ করা হয়েছে, জানি না কোথায় এবং সেখানে আমার কাছে সমস্ত বিকল্প নেই যা স্ক্রিপ্ট তৈরি করার সময় রয়েছে: -?
আলেক্সা অ্যাড্রিয়ান

4
বেশ কয়েকটি উত্তরে যেমন উল্লেখ করা হয়েছে, এসএমও ব্যবহার করুন আপনি যদি বিকাশকারী হন
জয় জয় জয়

উত্তর:


31

ব্রান ভিজ্যুয়াল স্টুডিও ২০০৮ এসপি 1 টিম স্যুট থেকে যা উল্লেখ করছে তা হ'ল ডেটাবেস প্রকাশনা উইজার্ডের সংস্করণ 1.4। এটি স্কয়ার সার্ভার ২০০৮ (সম্ভবত কেবল পেশাদার?) থেকে \ প্রোগ্রাম ফাইলগুলি \ মাইক্রোসফ্ট এসকিউএল সার্ভার \ 90 \ সরঞ্জাম \ প্রকাশনা \ 1.4 এ ইনস্টল করা আছে। সার্ভার এক্সপ্লোরার থেকে ভিএস কলটি কেবল এটিকে কল করছে। আপনি কমান্ড লাইনের মাধ্যমে একই কার্যকারিতা অর্জন করতে পারেন:

sqlpubwiz help script

আমি জানি না যে ভি 1.4 এর একই সমস্যা v1.1 এর মতো হয়েছে (ব্যবহারকারীরা ভূমিকায় রূপান্তরিত হয়, সীমাবদ্ধতা সঠিক ক্রমে তৈরি হয় না), তবে এটি আমার পক্ষে সমাধান নয় কারণ এটি চিত্রগুলি না করে doesn't এসএসএমএসে টাস্ক-> স্ক্রিপ্টস জেনারেট করুন বিকল্পের মতো বিভিন্ন ফাইলগুলিতে। আমি বর্তমানে ডাটাবেস পাবলিশিং উইজার্ড (sqlpubwiz.exe) এর উন্নত প্রতিস্থাপন হিসাবে কাজ করতে স্ক্রিপ্টিয়োর একটি পরিবর্তিত সংস্করণ (এমএস এসএমও এপিআই ব্যবহার করে) ব্যবহার করছি। এটি বর্তমানে কমান্ড লাইন থেকে স্ক্রিপ্টযোগ্য নয়, আমি ভবিষ্যতে এই অবদানটি যুক্ত করতে পারি।

স্ক্রিপ্টিয়ো মূলত বিল গ্রাজিয়ানো ব্লগে পোস্ট করা হয়েছিল, তবে পরবর্তীকালে বিল দ্বারা কোডপ্লেক্সে প্রকাশিত হয়েছে এবং অন্যরা আপডেট করেছে। এসকিউএল সার্ভার ২০০৮ এর সাথে ব্যবহারের জন্য কীভাবে সংকলন করতে হয় তা আলোচনা পড়ুন।

http://scripttio.codeplex.com/

সম্পাদনা: আমি তখন থেকে রেডগেটের এসকিউএল পণ্যগুলির তুলনা করতে এটি ব্যবহার শুরু করেছি। স্কয়ার প্রকাশনা উইজার্ডটি হওয়া উচিত ছিল এটির জন্য এটি একটি খুব সুন্দর প্রতিস্থাপন। আপনি উত্স হিসাবে একটি ডাটাবেস, ব্যাকআপ, বা স্ন্যাপশট এবং আউটপুট অবস্থান হিসাবে একটি ফোল্ডার চয়ন করুন এবং এটি একটি ফোল্ডার কাঠামোর মধ্যে সুন্দরভাবে সবকিছু ফেলা হয়। এটি তাদের অন্যান্য পণ্য, এসকিউএল সোর্স কন্ট্রোল, একই ফর্ম্যাট হিসাবে ব্যবহার করে।


২০১২ তে কি সমতুল্য আছে? উইজার্ডটি "স্ক্রিপ্ট সূচী" এর মতো আমার সেটিংস মনে রাখলে আমি কেবল খুশি হব।
পিটারএক্স

6
@ পিটারএক্স এসএমএস> সরঞ্জামসমূহ> বিকল্পসমূহ> এসকিউএল সার্ভার অবজেক্ট এক্সপ্লোরার> স্ক্রিপ্টিং
20:48

4
: 2012 জন্য এই সহায়িকার অনুসরণ simple-talk.com/sql/database-administration/...
সাইমন হাচিসন

@ আজানলোক খুব দরকারী মন্তব্য। দুর্ভাগ্যক্রমে তারা এসকিউএল সার্ভার ২০১৪
jk7

42

এসএসএমএসে স্ক্রিপ্ট জেনারেশনের তুলনায় স্কেলপুব্বিজের সীমিত বিকল্প রয়েছে। বিপরীতে এসএমওর সাথে উপলভ্য বিকল্পগুলি এসএসএমএসের সাথে প্রায় হুবহু মিলে যায়, এটি সম্ভবত একই কোড হিসাবে প্রস্তাবিত। (আমি আশা মাইক্রোসফট এটি দু 'বার লিখিনি!) মত দুটিই MSDN বিভিন্ন উদাহরণ এই এক ব্যক্তি বস্তু হিসেবে স্ক্রিপ্টিং টেবিল প্রদর্শন করুন। তবে আপনি যদি 'ডিআরআই' (ডিক্লারেটিভ রেফারেন্সিয়াল ইন্টিগ্রিটি) বিদেশী কীগুলির মতো অবজেক্ট অন্তর্ভুক্ত করে এমন একটি 'পূর্ণ' স্কিমায় সঠিকভাবে স্ক্রিপ্টে সবকিছু চান তবে স্বতন্ত্রভাবে টেবিলের স্ক্রিপ্টিং নির্ভরতাগুলি সঠিকভাবে কাজ করে না। আমি দেখতে পেয়েছি যে সমস্ত ইউআরএন সংগ্রহ করা এবং এ্যারে হিসাবে স্ক্রিপ্টারের কাছে হস্তান্তর করা প্রয়োজনীয় n এই কোডটি উদাহরণ থেকে পরিবর্তিত হয়েছে,

    using Microsoft.SqlServer.Management.Smo;
    using Microsoft.SqlServer.Management.Sdk.Sfc;
    // etc...

    // 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();

10
আপনি Microsoft.SqlServer.Management.SqlScriptPublish.ScriptPublishWizardঅ্যাসেম্বলি সি থেকে ক্লাসটি দেখতে পারেন : \ প্রোগ্রাম ফাইলগুলি (x86) \ মাইক্রোসফ্ট এসকিউএল সার্ভার \ 110 \ সরঞ্জামগুলি inn বিন \ ম্যানেজমেন্টস্টুডিও \ মাইক্রোসফট.সকিএল সার্ভার.ম্যানেজমেন্ট.সক্লিলস্ক্রিপ্টপুবিলেসআই.ডিএল। এসএসএমএস এটি ব্যবহার করে। (বিকল্পভাবে, আপনি Microsoft.SqlServer.Management.UI.GenerateScriptঅ্যাসেম্বলি সি থেকে ক্লাসটি দেখতে পারেন : \ প্রোগ্রাম ফাইলগুলি (x86) \ মাইক্রোসফ্ট এসকিউএল সার্ভার \ 110 \ সরঞ্জামগুলি \ বিন \ ম্যানেজমেন্টস্টুডিও
D

এখানে উদাহরণ কোড এবং লিঙ্কগুলি দুর্দান্ত শুরু ছিল এবং এটি ওপির সবচেয়ে সম্পূর্ণ উত্তর হওয়া উচিত (এটি আমার সঠিক প্রশ্নও ছিল)।
zanlok

4
আমি একটি সি # অ্যাপ একসাথে হ্যাক করেছি যা আপনাকে লিনাক্সের কমান্ড লাইন থেকে এসকিউএল সার্ভার স্ক্রিপ্ট তৈরি করতে দেয়। আপনার যা দরকার তা হ'ল নেট কোর 2 পূর্বরূপ: github.com/mkurz/SQLServerScriPoint
mkurz

20

আমি স্কিমাজেন নামে একটি ওপেন সোর্স কমান্ড লাইন ইউটিলিটি লিখেছি যা এটি করে। এটি ম্যানেজমেন্ট স্টুডিও থেকে স্ক্রিপ্ট করার চেয়ে অনেক দ্রুত এবং এর আউটপুটটি আরও সংস্করণ নিয়ন্ত্রণ বান্ধব। এটি স্কিমা এবং ডেটা উভয়ই স্ক্রিপ্টিং সমর্থন করে।

স্ক্রিপ্ট চালাতে জেনারেট করুন:

স্কিমাজেন.এক্সপি স্ক্রিপ্ট - সার্ভার লোকালহোস্ট - ডেটাবেস ডিবি - স্ক্রিপ্টডির সি: \ সামির

এরপরে স্ক্রিপ্টগুলি থেকে ডাটাবেসটি পুনরায় তৈরি করতে:

স্কিমাজেন.এক্সই - সার্ভার লোকালহোস্ট তৈরি করুন - ডেটাবেস ডিবি - স্ক্রিপ্টডির সি: \ সামির

আমি সবেমাত্র স্কেমাজেন চেষ্টা করেছি এবং আমি সত্যিই মুগ্ধ হয়েছি। প্রথমবার কাজ করেছেন। ধন্যবাদ শেঠ!
সাইমন হিউজ

@ তবে আপনি কী জিনিসগুলি স্ক্রিপ্ট করতে ব্যবহার করছেন? আমি কোনও মাইক্রোসফ্টের জন্য একটি একক রেফারেন্স দেখতে পাইনি qএসএইএইচএল সার্ভারের কোনও কিছুই নেই (ভালভাবে একটি বিবৃতি ব্যবহারের সাথে অবহিত ছিল)।
জন

@ জন - স্কিমা জেন এতে স্ক্রিপ্টিংয়ের জন্য নিজস্ব লাইব্রেরি রয়েছে। এটি স্কিমাটি একটি মডেলটিতে পড়ে তারপরে মডেলের উপর ভিত্তি করে স্ক্রিপ্টগুলি উত্পন্ন করে। একটি সাধারণ উদাহরণের জন্য github.com/se loverso/schemazen/blob/master/model/Models/… দেখুন ।
শেঠ রেনো

12

আপনি এসকিউএল সার্ভার ম্যানেজমেন্ট অবজেক্ট (এসএমও) ব্যবহার করতে পারেন এসকিউএল সার্ভার 2005 পরিচালনার কাজগুলি স্ক্রিপ্টগুলি সহ স্বয়ংক্রিয় করতে: http://msdn.microsoft.com/en-us/library/ms162169.aspx



7

আমি এসকিউএলপিএসএক্স এর সাথে পাওয়ারসেল দেখতে পাচ্ছি না যার মধ্যে এই উত্তরের কোনও উল্লেখ আছে ... আমি ব্যক্তিগতভাবে এটি খেলিনি তবে এটি ব্যবহার করতে খুব সহজ লাগছে এবং এই ধরণের অটোমেশন কার্যগুলির সাথে আদর্শভাবে উপযুক্ত, যেমন কাজগুলি সহ:

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/

এই পদ্ধতির মূল সুবিধাটি হ'ল এটি সরাসরি এসএমও ব্যবহারের কনফিগারবিলিটি / কাস্টমাইজিবিলিটির সাথে ডেটাবেস পাবলিশিং উইজার্ডের মতো একটি সহজ বিদ্যমান সরঞ্জাম ব্যবহারের সুবিধার্থে এবং রক্ষণাবেক্ষণের সাথে সম্মিলিত।


4
আমি এই সমাধানটি চেষ্টা করার জন্য কিছুটা সময় ব্যয় করেছি, তবে শেষ পর্যন্ত আমি সি # তে পরিণত হয়েছিল এবং এসএমও ব্যবহার করে। অতীতের কোনও উপায় আমি সহজেই খুঁজে পেতে পারি না is উদাহরণ কোডটি প্রতিটি টেবিলকে স্বতন্ত্র স্ক্রিপ্ট করে। একবার আপনি 'ডিআরআই' (ঘোষিত রেফারেন্টাল ইন্টিগ্রিটি) বিদেশী কীগুলির মতো বস্তুগুলিতে যুক্ত করা শুরু করলে এটি নির্ভরতা সঠিকভাবে পাবেন না এবং / অথবা এটি খুব ধীর হয়ে যাবে।
ওল্ডুয়ানস্টেভ

4

সরঞ্জামগুলিতে> বিকল্পগুলি> ডিজাইনারগুলি> টেবিল এবং ডেটাবেস ডিজাইনারগুলিতে 'অটো জেনারেট চেঞ্জ স্ক্রিপ্টস' এর জন্য একটি বিকল্প রয়েছে যা আপনি সংরক্ষণ করার সময় আপনার প্রতি পরিবর্তনের জন্য একটি উত্পন্ন করবে।


4
আমার ঠিক যা প্রয়োজন তা নয়। আমি তৈরির স্ক্রিপ্টগুলি পেতে চাই (আমার চূড়ান্ত লক্ষ্য হ'ল স্বয়ংক্রিয়ভাবে আমার ফাইলগুলি নিয়ন্ত্রণ করতে সিস্টেমগুলিতে এই ফাইলগুলি পরীক্ষা করা)
ব্রান

3

আপনি INFORMATION_SCHEMA টেবিলগুলি ব্যবহার করে টি-এসকিউএল কোড দিয়ে এটি করতে পারেন।

তৃতীয় পক্ষের সরঞ্জামগুলিও রয়েছে - আপনি যে ব্যবহারের কথা বলছেন তার জন্য আমি অ্যাপেক্স এসকিউএল স্ক্রিপ্টটি পছন্দ করি। আমি কমান্ড-লাইন থেকে এটি পুরোপুরি চালাই।


3

আপনি যদি মাইক্রোসফ্ট সমাধান করতে চান তবে আপনি চেষ্টা করতে পারেন: মাইক্রোসফ্ট এসকিউএল সার্ভার ডেটাবেস প্রকাশনা উইজার্ড ১.১

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

এটি এমন একটি ব্যাচ প্রক্রিয়া তৈরি করে যা আপনি স্ক্রিপ্টগুলি পুনর্নির্মাণের জন্য যে কোনও সময় চালাতে পারেন।


4
দুর্ভাগ্যক্রমে, এটি স্কেল সার্ভার 2008 সমর্থন করে না
ব্রান

4
সংস্করণ 1.2 বলছে এটি 2000 এবং 2005 সমর্থন করে তবে আমি ২০০৮-এ 3800+ সারণী সহ এটি একটি ডাটাবেস স্ক্রিপ্ট করতে ব্যবহার করেছি এবং এটি দুর্দান্ত কাজ করেছে। এটি সংকোচন বিকল্পগুলি অন্তর্ভুক্ত করেনি, যা ২০০৮ অবধি চালু করা হয়নি I've আমি কেবল ২০০৮ এর আর ২ ডাটাবেসের বিরুদ্ধেও পরীক্ষা করেছি এবং এটি স্ক্রিপ্টগুলিও ঠিক আছে।
জেরেমি

3

ব্যবহার করে দেখুন নতুন SQL সার্ভার কমান্ড লাইন টুলস টি-এসকিউএল স্ক্রিপ্ট নির্মাণ করতে ও মনিটর ডায়নামিক ম্যানেজমেন্ট দেখাগুলি।

মোহন মত আমার জন্য কাজ। এটি মাইক্রোসফ্টের একটি অজগর ভিত্তিক একটি নতুন সরঞ্জাম যা কমান্ড লাইন থেকে চালিত হয়। মাইক্রোসফ্ট পৃষ্ঠায় বর্ণিত মতো সবকিছুই কাজ করে (নীচের লিঙ্কটি দেখুন) এসকিউএল 2012 সার্ভারের সাথে আমার জন্য কাজ করেছেন।

আপনি এটি পাইপের সাহায্যে ইনস্টল করুন:

$ পিএসএস ইনস্টল করুন এমএসকিউএল-স্ক্রিপ্টার

সহায়তার জন্য h সহ যথারীতি কমান্ড প্যারামিটার ওভারভিউ:

এমএসকিউএল-স্ক্রিপ্টার -h

ইঙ্গিত: আপনি যদি উইন্ডোজ প্রমাণীকরণের মাধ্যমে এসকিউএল-সার্ভারে লগ ইন করেন তবে কেবল ব্যবহারকারী নাম এবং পাসওয়ার্ডটি রেখে যান।

https://cloudblogs.microsoft.com/sqlserver/2017/05/17/try-new-sql-server-command-line-tools-to-generate-t-sql-scriptts-and-monitor-dynamic-management- দেখা /


2

আমি ডিবি তুলক ব্যবহার করছি - এটি নিখরচায় এবং কোনও ফাস স্ক্রিপ্ট পুরো ডিবি এবং অন্য ডিবির সাথে তুলনা করতে এবং একটি ডিফ স্ক্রিপ্ট তৈরি করতে পারে। উন্নয়নের জন্য উত্পাদন পরিবর্তনের স্ক্রিপ্টগুলির জন্য দুর্দান্ত। http://www.dbcomparer.com/


1

এই প্রয়োজনীয় কমান্ড লাইন সরঞ্জামটি আমি আমার প্রয়োজনগুলির জন্য তৈরি করি।
http://mycodepad.wordpress.com/2013/11/18/export-ms-sql-database-schema-with-c/

এটি একটি সম্পূর্ণ ডিবি রফতানি করতে পারে এবং এটি এনক্রিপ্ট করা বস্তুগুলি রফতানি করার চেষ্টা করে। সহজ ফাইলের তুলনার জন্য সমস্ত কিছু ফোল্ডারে এবং পৃথক এসকিএল ফাইলগুলিতে সঞ্চিত থাকে।

কোড গিথুবেও পাওয়া যায়।


0

ভিজ্যুয়াল স্টুডিও 2008 এসপি 1 টিমসুয়েট থেকে:

সার্ভার এক্সপ্লোরার / ডেটা সংযোগ ট্যাবগুলিতে, একটি প্রকাশনা সরবরাহকারী সরঞ্জাম রয়েছে যা "মাইক্রোসফ্ট এসকিউএল সার্ভার ডেটাবেস প্রকাশনা উইজার্ড" এর মতো করে তবে এমএস এসকিএল সার্ভার ২০০৮ এর সাথে সামঞ্জস্যপূর্ণ।


কীভাবে এটি টাস্কটি স্বয়ংক্রিয় করতে সহায়তা করে?
সার্জ ওয়াটিয়ার

0

আমি ভিএস 2012 ব্যবহার করছি (এমএসএসকিউএল সার্ভার ২০০৮-এর ডিবি-র জন্য) তুলনা ডাটাবেসে এটি সংরক্ষণের তুলনা এবং বিকল্পগুলি রয়েছে compare প্রসবের জন্য আপনার সেটিংসগুলি মূলত এটি। এর পরে আপনি আপডেট বা স্ক্রিপ্ট তৈরি করতে পারেন।

আমি ফাইলটি পরে লোড করা কিছুটা বিশ্রী মনে করে (উইন্ডোজ এক্সপ্লোরার থেকে টেনে আনুন এবং ড্রপ করে নিন) কারণ সমাধান সন্ধানকারীটিতে ফাইলটি আমি দেখতে পাই না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.