我的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
问题在哪里?
答案 0 :(得分:2)
对于此特定语法,您需要将数据库架构和表格分开。您的代码应该是(假设T1
在dbo
)的默认架构中
SELECT * FROM ggg.dbo.t1
如果键入y
,则SQL假定您正在讨论当前连接的数据库的默认(通常为dbo)架构中的表或视图。
如果键入x.y
,则SQL假定您正在讨论当前连接的数据库的y
模式中的x
表。
如果键入x.dbo.y
,SQL将在dbo
数据库的x
模式中查找名为y
的表。