【问题标题】:MS SQL Server JDBC Driver does not read remarksMS SQL Server JDBC Driver 不读备注
【发布时间】:2013-01-30 15:09:54
【问题描述】:

我正在尝试从 SQL Server 读取与 liquibase dbdoc 一起使用的数据库元数据。但是,似乎两者都没有

  • MS SQL Server JDBC 驱动程序 (sqljdbc4-4.0.2206.100.jar)

也没有

支持通过 Column.getRemarks() 从 SQL Server 读取 MS SQL 列/表“描述”字段。

有谁知道我可以使用一些替代驱动程序吗?

【问题讨论】:

  • 我感觉你的问题很高级。你想从哪里读取数据库元数据,是 INFORMATION_SCHEMA 吗?
  • 我无法回答您的问题,但您可能想澄清一下“备注”或“说明字段”的确切含义。我怀疑你的意思是extended properties,但我可能错了。如果您不确定如何称呼它,只需准确说明您可以看到它的位置即可。
  • 对不起,如果我的问题不清楚。 jdbc 驱动程序 Column 对象有一个备注字段 (getRemarks()),我认为它可能会从 ms SQL 返回“描述”字段。但不幸的是,事实并非如此。因此,当通过 liquibase 生成 db 文档时,该字段没有被正确评估并且文档不是很有用。

标签: sql-server jdbc liquibase


【解决方案1】:

您可以编写一个使用sys.extended_properties 读取描述的sp 并调用该sp 以获取扩展属性。

【讨论】:

  • 虽然这是可能的,但不幸的是,这两个驱动程序都没有透明地支持这一点。这使得构建在 JDBC 之上的库难以使用(例如 Liquibase),因为您也需要修补这些库。
  • 我想 JDBC 驱动程序没有这个的原因是因为扩展属性并不是所有关系数据库中常见的东西。扩展属性特定于 SQL 服务器,而 JDBC 针对所有关系数据库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多