Добавить описание в столбцы, используя код Java - PullRequest
0 голосов
/ 06 августа 2009

Я могу создать таблицу и ее столбцы в Java, используя инструкцию:

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

Что я хотел бы сделать, это добавить описания к каждому из этих столбцов с соответствующим утверждением, я нашел хранимую процедуру sp_addextendedproperty , которая выглядит так, как будто ее можно использовать для достижения этой цели. Я просто понятия не имею, как использовать его в Java с JDBC.

Ответы [ 2 ]

1 голос
/ 06 августа 2009

Вы создаете таблицу динамически во время выполнения (например, как часть вашего приложения) - возможно, это даже управляется пользователем? Если это так, то у вас уже есть эта «документация» (комментарии к колонкам), и я сомневаюсь в полезности их добавления в SQL Server.

Но если вы просто пытаетесь автоматизировать сборку, взгляните на LiquiBase . Это довольно приличная система управления изменениями БД, использующая XML в качестве основы. Он написан на Java и хорошо интегрируется с Hibernate (полезно, если вы когда-нибудь решите использовать ORM вместо простого JDBC).

Обновление: Если вы решите продолжить вызов хранимой процедуры через JDBC, я настоятельно рекомендую использовать CallableStatement для ее вызова. По возможности следует избегать динамического построения SQL-запросов в приложении.

1 голос
/ 06 августа 2009

Существует несколько способов вызова хранимой процедуры (по сути, подготовка оператора и привязка переменных или отправка строки SQL), но самый простой способ - просто отправить оператор SQL

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

Пропуск вашей попытки / окончательного примера, и предположим, что connection это java.sql.Connection, то есть:

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

Но у ChssPly76 есть хороший момент: делать это на Java - не очень хорошая идея (если вы не разрабатываете какой-либо менеджер баз данных на Java).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...