【发布时间】:2018-06-28 12:48:45
【问题描述】:
我正在使用 SQL Server Management Studio 在 Windows 窗体上构建应用程序。 我已经从 w3Schools Ms SQL Engine 学习了 SQL 的基础知识。现在,当我尝试在 SQL Server Management Studio 中使用 Join 时,它会引发异常。
这是我的问题:
SELECT Customers.CustomerName,COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID
GROUP BY CustomerName;
查询在 w3 Ms SQL 引擎中运行良好,但在 SQL Server 管理工作室中无法正常运行。
异常/错误是:
消息 207,级别 16,状态 1,第 3 行无效的列名称“客户名称”。
消息 207,级别 16,状态 1,第 1 行无效的列名称“客户名称”。
两列,即CustomerID 和CustomerName 都存在于表中。
我在这里做错了什么?
已解决 使用完全限定名称解决了该问题。 感谢您的帮助:)
【问题讨论】:
-
你确定连接到正确的数据库了吗?
-
当然,像“select * from Orders”这样的其他简单查询可以在应用程序中正常工作。
-
你能在此处创建一个显示问题的工作小提琴吗:sqlfiddle.com?
-
用完全限定的表名尝试相同的查询,即客户和订单的 DBname.schemaname.tablename,看看你是否遇到同样的问题。例如。适合您情况的 DWH.dbo.Customers 或等效项。
-
如果您连接到同一个数据库并作为同一个登录名连接,那么上述简单的查询就没有理由在一个应用程序中而不是在另一个应用程序中工作。因此,有些不同,因此我的问题。如果您运行以下 SQL(在 SSMS 中),是否会返回任何内容?
SELECT c.[name] as ColumnName, t.[name] AS TableName FROM sys.tables t JOIN sys,columns c ON t.object_id = c.object_id WHERE c.[name] = 'CustomerName';
标签: c# sql-server sql-server-2008