SELECT * FROM agency
INNER JOIN TUser
[agency].[dbo].[Matrix_Branch_ID]=[TUser].[dbo].[client_id]
Microsoft SQL Server Managment Studio gives me:
SQL Server Management Studio给了我:
Msg 170,Level 15,State 1,Line 3
第3行:'。'附近的语法不正确。
修改
用
修复语法错误SELECT * FROM agency
INNER JOIN TUser
ON dbo.agency.Matrix_Branch_ID=dbo.TUser.client_id
SQL Server Management Studio现在给了我:
Msg 208,Level 16,State 1,Line 1
无效的对象名称'agency'。
消息208,级别16,状态1,行1 无效的对象名称'TUser'。
答案 0 :(得分:7)
如果你在SSMS中运行它 - 你是否在正确的数据库中;包含这两个表的那个?
当查询窗口处于活动状态时,您可以看到当前数据库 - 包括工具栏上的下拉列表以及查询窗口的页脚。
答案 1 :(得分:5)
您错过了ON
关键字请参阅FROM (Transact-SQL)中的<joined table>
语法
<joined_table> ::= { <table_source> <join_type> <table_source> ON <search_condition> | <table_source> CROSS JOIN <table_source> | left_table_source { CROSS | OUTER } APPLY right_table_source | [ ( ] <joined_table> [ ) ] }
我认为表和字段名称之间的[dbo]
也是错误的。见Using Identifiers As Object Names
这应该有效
SELECT * FROM agency
INNER JOIN TUser
ON [agency].[Matrix_Branch_ID]=[TUser].[client_id]
答案 2 :(得分:2)
您是否选择了正确的数据库? SQL Server默认使用master数据库,这不是您可能想要的数据库。
您可能希望限定表格上的架构,而不是您选择的项目。例如:
Use [Database_name]
SELECT * FROM dbo.agency
INNER JOIN dbo.TUser ON agency.Matrix_Branch_ID=TUser.client_id