2009-08-06 7 views
0

mit I unter Verwendung der Anweisung eine Tabelle und ihre Spalten in Java erstellen:hinzufügen Beschreibung Spalten Java-Code

CREATE TABLE table_name(column1 int, column2 double, etc...) 

Was ich möchte, ist zu tun Beschreibungen zu jedem dieser Spalt mit einem entsprechenden hinzufügen Aussage, ich fand eine gespeicherte Prozedur sp_addextendedproperty, die aussieht, wie es verwendet werden kann, um dies zu erreichen Ich habe nur keine Ahnung, wie man es in Java mit JDBC verwenden.

+0

Warum möchten Sie dies von Java aus tun? Führen Sie auch "create table" -Anweisungen von Java aus? Wenn nicht, würden Sie vermutlich die Dinge in Ihrem DDL-Skript gebündelt haben. – ChssPly76

+0

ja Ich erstelle die Datentabelle aus Java –

Antwort

1

Erstellen Sie die Tabelle dynamisch zur Laufzeit (z. B. als Teil Ihrer Anwendung) - vielleicht sogar benutzergesteuert? Wenn das der Fall ist, haben Sie diese "Dokumentation" (Spaltenkommentare) bereits irgendwo und ich bezweifle das Dienstprogramm, sie zu SQL Server hinzuzufügen. Wenn Sie nur versuchen, Ihren Build zu automatisieren, werfen Sie einen Blick auf LiquiBase. Es ist ein ziemlich anständiges DB-Änderungsmanagementsystem, das XML als Backbone verwendet. Es ist in Java geschrieben und integriert sich gut in Hibernate (nützlich, wenn Sie sich jemals dafür entscheiden, ORM anstelle von JDBC zu verwenden).

Update: Wenn Sie vorwärts über JDBC mit Aufruf gespeicherte Prozedur gehen entscheiden, würde ich stark empfehlen CallableStatement verwenden es aufzurufen. Das dynamische Erstellen von SQL-Abfragen in der Anwendung sollte nach Möglichkeit vermieden werden.

1

Es gibt eine Reihe von Möglichkeiten, um eine gespeicherte Prozedur aufzurufen (im Wesentlichen die Aussage vorbereitet und die Variablen zu binden, oder eine Reihe von SQL-Senden), aber die einfachste ist, einfach rhe SQL-Anweisung senden

exec sp_addextendedproperty list, of, arguments, the, sp, needs; 

Skipping Ihre try/finally vorformulierten und connection unter der Annahme ist ein java.sql.Connection, das ist:

connection 
    .createStatement() 
     .execute("exec sp_addextendedproperty arguments;"); 

Aber ChssPly76 hat einen guten Punkt: tun dies aus Java ist keine gute Idee (es sei denn, Sie einige Datenbankmanager entwickelst in Ja va).

Verwandte Themen