Java 如何检测列是否为计算列

Java 如何检测列是否为计算列,java,sql-server-2000,calculated-columns,Java,Sql Server 2000,Calculated Columns,我正在使用SQLServer2000和Java 我正在创建一个应用程序,其中包括从表中读取元数据,在另一台服务器上重新创建它们并携带数据 其中一个表是这样创建的: CREATE TABLE some_table ( Date datetime NOT NULL, Code int NOT NULL, SameCodeAgainWTF AS Code ) 如何检测“SameCodeAgainWTF”列是计算列,以便在数据迁移阶段不尝试在其上插入值 我已经从连接

我正在使用SQLServer2000和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获取信息

我知道我可以查询syscolumns,但我想避免它

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

包含已计算的
列的查询

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'

“SELECT*FROM dbo.syscolumns WHERE iscomputed=1”我看到了这个解决方案,但我想知道是否有一种方法可以从数据库元数据或ResultSetMetaData中获取该信息,而无需为此编写另一个查询。由于没有发布其他答案,我将接受您的唯一方法。但是,在我的程序中,我最终使用了RecordSetMetaData中的isReadOnly方法。