Zitat von Viper78 |
Ahm,
mir stellt sich die Frage was willst du erreichen am ende?
Beschäftige dich mit den System-Tabellen vom MSSQL und du kannst die Tabellen-Scripte etc auslesen. |
Das geht mitunter auch eleganter mit .net-Mitteln. Suche mal nach SMO (Server Management Objects). Ich habe damit schon einiges erreichen können.
Hier eine kleine Starthilfe.
Server srv = new Server(SERVERNAME);
srv.ConnectionContext.SqlExecutionModes = SqlExecutionModes.CaptureSql;
Database db = srv.Databases[DATENBANKNAME];
Wenn du beim Serverobjekt den SqlExecutionMode auf CaptureSql stellst, dann kannst du auf Objektebene Operationen durchführen und diese mit bspw. table.Alter() an den Server schicken. (wird ja durch obige Option nicht zum Server geschickt, sondern nur aufgezeichnet.)
Anschließend kannst du den Sql-Befehl auslesen, der diese Operationen auf dem Server durchführen würde.
//------------------------------------------------------------------------------------------------------------------------------------------------------------
private static void InsertCapturedSqlCommandToStringbuilder(Server srv, StringBuilder sb)
{
sb.AppendLine();
foreach (string s in srv.ConnectionContext.CapturedSql.Text)
{
sb.AppendLine(s);
}
srv.ConnectionContext.CapturedSql.Clear();
}
Ich habe leider keine Zeit, meine Anwendung zu verfremden, so dass unsere Interna nicht mehr sichtbar sind. Aber mit diesen Stichwörtern solltest du arbeiten können.
Grüße, Florian