我可以使用以下语句在Java中创建表及其列:
CREATE TABLE table_name(column1 int, column2 double, etc...)
我想要做的是使用适当的语句为每个列添加描述,我找到了一个存储过程sp_addextendedproperty,看起来它可以用来完成这个我只是不知道如何在带有jdbc的java中使用它。
答案 0 :(得分:1)
有很多方法可以调用存储过程(实际上,准备语句并绑定变量,或者发送一串SQL),但最简单的方法就是发送一下SQL语句
exec sp_addextendedproperty list, of, arguments, the, sp, needs;
跳过try / finally样板,假设connection
是java.sql.Connection
,那就是:
connection
.createStatement()
.execute( "exec sp_addextendedproperty arguments;");
但是ChssPly76有一个好处:从Java做这个并不是一个好主意(除非你用Java开发一些数据库管理器)。
答案 1 :(得分:1)
您是否在运行时动态创建表(例如,作为应用程序的一部分) - 也许这甚至是用户驱动的?如果是这种情况,你已经在某处有“文档”(列注释),我怀疑将它们添加到SQL Server的效用。
但是,如果您只是尝试自动构建,请查看LiquiBase。这是一个相当不错的数据库变更管理系统,它使用XML作为主干。它是用java编写的,并且与Hibernate很好地集成(如果您决定使用ORM而不是直接JDBC,则非常有用)。
更新:如果你决定继续通过JDBC调用存储过程,我会强烈建议使用CallableStatement来调用它。如果可能,应该避免在应用程序中动态构建SQL查询。