使用SQLExecDirect执行SELECT

时间:2014-10-28 16:33:09

标签: sql-server visual-c++ odbc

我的MSSQL数据库服务包含已创建的数据库ggg,其中包含表t1

尝试执行SELECT声明

 RetCode = SQLExecDirect(hStmt,wszInput, SQL_NTS);

wszInput的内容为select * from ggg.t1

输出错误:

[42S02] [Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid object name 'ggg.t1'. (208)
SQL COMMAND>select * from DB.ggg.t1

问题在哪里?

1 个答案:

答案 0 :(得分:2)

对于此特定语法,您需要将数据库架构和表格分开。您的代码应该是(假设T1dbo)的默认架构中

SELECT * FROM ggg.dbo.t1

如果键入y,则SQL假定您正在讨论当前连接的数据库的默认(通常为dbo)架构中的表或视图。

如果键入x.y,则SQL假定您正在讨论当前连接的数据库的y模式中的x表。

如果键入x.dbo.y,SQL将在dbo数据库的x模式中查找名为y的表。