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);
}
}