gpt4 book ai didi

java - 如何检测列是否是计算列

转载 作者:行者123 更新时间:2023-12-01 15:43:28 26 4
gpt4 key购买 nike

我正在使用 SQL Server 2000 和 Java。

我正在创建一个应用程序,除其他外,它从表中读取元数据,在另一台服务器上重新创建它们并携带数据。

其中一个表是这样创建的:

CREATE TABLE some_table (
Date datetime NOT NULL,
Code int NOT NULL,
SameCodeAgainWTF AS Code
)

如何检测“SameCodeAgainWTF”列是计算列,以便我在数据迁移阶段不会尝试在其中插入值?

我已经从连接中获取了 DatabaseMetaData 对象。但我无法找到为我提供该信息的方法。

...
DatabaseMetaData dbMetaData = connection.getMetaData();
...

提前致谢。

编辑1:

我想知道是否有无需运行另一个查询的解决方案。是否有办法从 DatabaseMetaData 或 ResultSetMetaData 获取信息。

我知道我可以查询系统列,但我想避免它。

SELECT 
sysobjects.name AS TableName,
syscolumns.name AS ColumnName
FROM syscolumns
INNER JOIN sysobjects
ON syscolumns.id = sysobjects.id
AND sysobjects.xtype = 'U' --User Tables
WHERE syscolumns.iscomputed = 1

From: Get List of Computed Columns in Database Table (SQL Server)

最佳答案

查询syscolumns其中包含一个 iscompulated 列。

SELECT o.name as TableName, c.name as ComputedColumnName
FROM sysobjects o
INNER JOIN syscolumns c
ON o.id = c.id
AND c.iscomputed = 1
WHERE o.xtype = 'u'

关于java - 如何检测列是否是计算列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7601448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com