请问如何得到SQL SERVER数据库中所有表的表名

yonglijiao 2005-02-28 12:17:08
请问如何得到SQL SERVER数据库中所有表的表名,如数据库名为"ABC"
...全文
59 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kudeet 2005-02-28
  • 打赏
  • 举报
回复
odbc遍历求数据库中表名:
bool CDBInfoDlg::ListTables(bool bViews, bool bSystemTables)
{
CDatabase database;
CString type = "'TABLE'";
int ret= -1;
HSTMT hStmt;
UCHAR szName[256];
SDWORD cbName;
CString names;
if( bViews )
type += ", 'VIEW'";//视图
if( bSystemTables )
type += ", 'SYSTEM TABLE'";//系统表
try{
if( !database.Open(m_strDSN) )
return false;
}
catch(...)
{
AfxMessageBox("Unable To Obtain Table Information");
return false;
}
SQLAllocStmt(database.m_hdbc,&hStmt);
ret = SQLTables(hStmt, NULL,SQL_NTS,
NULL,SQL_NTS,
NULL,SQL_NTS,
(unsigned char *)type.GetBuffer(0),SQL_NTS);
if(ret == SQL_ERROR)
{
SQLFreeStmt(hStmt,SQL_CLOSE);
database.Close();
if(ret == SQL_INVALID_HANDLE )
{
AfxMessageBox("Invalid handle");
return false;
}
AfxMessageBox("Database Could Not be Open");
return false;
}
m_cmbTables.ResetContent();
while(1){
ret = SQLFetch(hStmt);
if(ret == SQL_NO_DATA_FOUND)
break;
ret = SQLGetData(hStmt,3,SQL_C_CHAR,szName,TABLE_NAME_LENGTH, &cbName);
names.Format("%s",szName);
m_cmbTables.AddString(names);
}

m_cmbTables.SetCurSel(0);

SQLFreeStmt(hStmt,SQL_CLOSE);
database.Close();

ShowTable();

return true;
}

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧