Prüfen of DB-Feld vorhanden und ggf. anlegen

09/07/2009 - 17:50 von Christina Heß | Report spam
Hallo,

ich muß über VB.NET prüfen, ob in einer Tabelle eines MSSQL 2005 ein Feld
enthalten ist, und wenn nicht das Feld anlegen.

Wie geht man da am besten vor?

Vom SQL Server kann ich ja ein Script erzeugen,
if not exist...
alter table ...

kann man das mit ExcecuteNonQuery eines SQLCommand übergeben?
Wie lang kann das übergebene SQl-Anweisung sein?

Oder gibt es eine bessere, elegantere Methode?

Besten Dank schonmal

Christina
 

Lesen sie die antworten

#1 Elmar Boye
09/07/2009 - 18:27 | Warnen spam
Hallo Christina,

ich muß über VB.NET prüfen, ob in einer Tabelle eines MSSQL 2005 ein Feld
enthalten ist, und wenn nicht das Feld anlegen.

Wie geht man da am besten vor?

Vom SQL Server kann ich ja ein Script erzeugen,
if not exist...
alter table ...

kann man das mit ExcecuteNonQuery eines SQLCommand übergeben?



Man kann.
Du mußt dabei jeden Stapel einzeln ausführen,
die durch das Management Studio durch "GO" trennt werden.
Denn "GO" ist kein Bestandteil von T-SQL.

Wie lang kann das übergebene SQl-Anweisung sein?



65536 * Packet Size (beim SqlClient Standard = 8192).

Oder gibt es eine bessere, elegantere Methode?



Alternativ (eleganter lassen wir mal dahingestellt ;-):
Führe das Skript via sqlcmd.exe aus, was dafür allerdings
auf dem Rechner vorhanden sein muß.

Gleiches gilt für SQL SMO, was ein vollstàndiges Objektmodell
bereitstellt, aber ebenfalls vorhanden sein muß.
Und zudem muß man die Klassen erst einmal kennenlernen.

Gruß Elmar

Ähnliche fragen