
其中remarks 就是你想要看的 comment
select t.Remarks as 注释,t.* from syscat.COLUMNS twhere tabschema='模式名' and tabname=upper('表名')
db2look貌似不行,可以自己写一个存储过程来实现,下面是我写的一个C#抽取db2表的索引,供参考。/// <summary>
/// 获得一个表的索引信息
/// </summary>
/// <param name="aStrDBName">数据库名</param>
/// <param name="aStrSchema">模式名</param>
/// <param name="aStrTBName">表名</param>
/// <returns></returns>
public static DataTable GetIndexes(string aStrDBName, string aStrSchema, string aStrTBName)
{
ConnectionString cnn = GetConnection(aStrDBName)
if (cnn == null)
{
return null
}
else
{
string strSql = @"select b.COLCOUNT, b.COLNAMES,b.IID,b.INDNAME,b.INDSCHEMA,b.TABNAME,b.TABSCHEMA,b.UNIQUERULE,b.REMARKS
from syscat.INDEXES b
where b.TABSCHEMA = '{0}' and b.TABNAME = '{1}'
order by b.IID"
strSql = string.Format(strSql, aStrSchema, aStrTBName)
return SQLHelper.ExecuteDataTable(cnn, strSql)
}
}
/// <summary>
/// 获得索引语句信息
/// </summary>
/// <param name="aStrDBName">数据库名</param>
/// <param name="aStrSchema">模式名</param>
/// <param name="aStrTBName">表名</param>
/// <param name="aStrTerminator">语句终结符</param>
/// <returns></returns>
public static string GetIndexesInfo(string aStrDBName, string aStrSchema, string aStrTBName, string aStrTerminator)
{
return GetIndexesInfo(GetIndexes(aStrDBName, aStrSchema, aStrTBName), aStrTerminator)
}
/// <summary>
/// 获得索引语句信息
/// </summary>
/// <param name="aDtIndexes">索引表</param>
/// <param name="aStrTerminator">语句终结符</param>
/// <returns></returns>
public static string GetIndexesInfo(DataTable aDtIndexes, string aStrTerminator)
{
string strInfo = ""
if (aDtIndexes != null)
{
foreach (DataRow drIndex in aDtIndexes.Rows)
{
if (drIndex["UNIQUERULE"].ToString().Trim() != "P")
{
strInfo += "\r\n\r\n"
strInfo += string.Format("CREATE {4}INDEX {0}.{1}\r\n ON {2}.{3}\r\n{5}{6}",
drIndex["INDSCHEMA"].ToString().Trim(), drIndex["INDNAME"].ToString().Trim(),
drIndex["TABSCHEMA"].ToString().Trim(), drIndex["TABNAME"].ToString().Trim(),
drIndex["UNIQUERULE"].ToString().Trim() == "U" ? "UNIQUE " : "",
GetIndexColumnsInfo(drIndex["COLNAMES"].ToString().Trim()), aStrTerminator)
}
}
}
return strInfo
}
/// <summary>
/// 获得索引的列字段
/// </summary>
/// <param name="aStrColNames">索引列字符串</param>
/// <returns></returns>
private static string GetIndexColumnsInfo(string aStrColNames)
{
aStrColNames = aStrColNames.Replace("+", ",ASC ").Replace("-", ",DESC ")//替换升序降序符号
string[] strCols = aStrColNames.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
aStrColNames = "("
foreach (string s in strCols)
{
aStrColNames += s.Substring(s.IndexOf(" ") + 1) + " " + s.Substring(0, s.IndexOf(" ")) + ","
}
aStrColNames = aStrColNames.TrimEnd(new char[] { ',' }) + ")"
return aStrColNames
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)