🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / MSSQL RMOS / C# ile Generate script smo kullanımı

1-) MSSQL RMOS - C# ile Generate script smo kullanımı

 

nuget : Microsoft.SqlServer.SqlManagementO

https://www.nuget.org/packages/Microsoft.SqlServer.SqlManagementObjects/161.44091.28?_src=template

using Microsoft.SqlServer.Management.Common;

using Microsoft.SqlServer.Management.Smo;

using Microsoft.SqlServer.Management.Sdk.Sfc;

using System;

using System.Data.SqlClient;

using System.IO;

using System.Text;

using System.Windows.Forms;

 

namespace SqlSmoRm

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

 

        private void button1_Click(object sender, EventArgs e)

        {

            MyAllScriptCreate();

 

            MessageBox.Show("kaydedildi");

        }

        private void MyAllScriptCreate()

        { // hata buradan kaynaklanıyor 2 tane table eklerken cunku 1 tabloyu eklerken dıgerlerınıde eklıyor o yuzden dıagram olmayan tabloda deneme yap

            var server = new Server(new ServerConnection { ConnectionString = new SqlConnectionStringBuilder { DataSource = @"RAMBO", IntegratedSecurity = true, }.ToString() });

            server.ConnectionContext.Connect();

            var database = server.Databases["deneme"];

            var output = new StringBuilder();

            foreach (Table table in database.Tables)

            {

                var scripter = new Scripter(server)

                {

                    Options = {

                        ScriptData =           false,

                        Default =              true,

                        ClusteredIndexes =     true,

                        FullTextIndexes =      true,

                        Indexes =              true,

                        NonClusteredIndexes =  true,

                        SchemaQualify =        true,

                        ScriptSchema =         true,

                        Statistics =           true,

                        Triggers =             true,

                        WithDependencies =     true,

                        DriAll =               true,

                        

                       

                    }

                   

                };

                              var script = scripter.EnumScript(new SqlSmoObject[] { table });

                

                foreach (var line in script)

                    output.AppendLine(line);

            }

            File.WriteAllText(@"MyDatabase12.sql", output.ToString());

        }

 

    }

}

 

 

 

1-) MSSQL RMOS - çok onemlı değil alter için

 

 private void alterTableColumns()

        {

            Server srv = new Server(new ServerConnection("RAMBO", "sa", "123"));

            srv.ConnectionContext.SqlExecutionModes = SqlExecutionModes.CaptureSql;

            //Make a modification to the server that is to be captured.

            Table t = srv.Databases["deneme"].Tables["il"]; // assuming dbo is the schema

 

            Column c = new Column(t, "il_ad", DataType.Int);

 

            t.Columns.Add(c);

 

            t.Alter();

 

            //Iterate through the strings in the capture buffer and display the captured statements.

            foreach (string ss in srv.ConnectionContext.CapturedSql.Text)

            {

                Console.WriteLine(ss);

            }

 

        }

 2021 Mart 08 Pazartesi
 517