这在SQLServer2005中意味着什么
我正在使用Microsoft SQL Server 2005,执行此查询时:这在SQLServer2005中意味着什么,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,我正在使用Microsoft SQL Server 2005,执行此查询时: select F.E, S.E from Subject 我发现以下错误: 无法绑定多部分标识符F.E。 无法绑定多部分标识符S.E 但是当执行这个查询时,它工作得很好 select * from Subject 这些错误是什么意思?该错误意味着SQL server不知道F.E和S.E是什么 如果S指的是您的主题表,对于Instance,您需要指定名称S: 这将从临时称为S的表主题中获
select
F.E,
S.E
from
Subject
我发现以下错误:
无法绑定多部分标识符F.E。
无法绑定多部分标识符S.E
但是当执行这个查询时,它工作得很好
select * from Subject
这些错误是什么意思?该错误意味着SQL server不知道F.E和S.E是什么 如果S指的是您的主题表,对于Instance,您需要指定名称S: 这将从临时称为S的表主题中获取缺少WHERE的所有行中的所有字段* 如果只想从Subject中获取字段E,可以编写
SELECT S.E FROM Subject S
这与写作完全相同
SELECT E FROM Subject
这个错误意味着SQL server不知道什么是F.E和S.E 如果S指的是您的主题表,对于Instance,您需要指定名称S: 这将从临时称为S的表主题中获取缺少WHERE的所有行中的所有字段* 如果只想从Subject中获取字段E,可以编写
SELECT S.E FROM Subject S
这与写作完全相同
SELECT E FROM Subject
这意味着F和S别名未知
select S.E
from Subject S
然后定义别名S
编辑1
如果要使用这些特殊字符,必须使用带引号的标识符
SET QUOTED_IDENTIFIER ON
GO
select [F.E]
, [S.E]
from Subject
您甚至可以有包含空格字符的字段名
[Postal Address]
[Family Name]
[Is Active?]
[Subject #]
[And So Forth!...]
以下是一些简单的例子= 这意味着F和S别名未知
select S.E
from Subject S
然后定义别名S
编辑1
如果要使用这些特殊字符,必须使用带引号的标识符
SET QUOTED_IDENTIFIER ON
GO
select [F.E]
, [S.E]
from Subject
您甚至可以有包含空格字符的字段名
[Postal Address]
[Family Name]
[Is Active?]
[Subject #]
[And So Forth!...]
以下是一些简单的例子= 很抱歉在流程上浪费了您的堆栈,请将其命名为F_E而不是F.E 它是一个标识符,没有像。!@$$%^%这样的符号^&&*&
但它可能有抱歉,在流上浪费了堆栈,只需将其命名为F_E而不是F.E 它是一个标识符,没有像。!@$$%^%这样的符号^&&*&
但它可能有我认为问题在于他使用F.E和S.E作为列名。这就是为什么他试图使用它。只有将列名放在括号中时,才允许使用点。就像从主题中选择[F.E],[S.E]一样。@MadBoy:很可能是这样。OP并没有给我们很多线索:我认为问题在于他使用F.E和S.E作为列名。这就是为什么他试图使用它。只有将列名放在括号中时,才允许使用点。就像从主题中选择[F.E],[S.E]一样。@MadBoy:很可能是这样。OP没有给我们多少线索:@alex:请在评论之前先喝杯咖啡。我们尽量不在此时使用这种语气。我想他是想说他通过重命名字段解决了这个问题。。。?在这种情况下,错误信息正是他收到时写的。@alex:请在评论之前先喝杯咖啡。我们尽量不在此时使用这种语气。我想他是想说他通过重命名字段解决了这个问题。。。?在这种情况下,错误信息正是他收到错误信息时的写法。一些简单的可怕事情的例子。我不确定是否有人知道这一点会更好:@David:同意!我不喜欢使用带引号的标识符。我最好还是坚持旧的方式,要么使用SQL Server,要么使用Oracle=可怕事情的简单例子。我不确定是否有人知道这一点会更好:@David:同意!我不喜欢使用带引号的标识符。我最好还是坚持旧的方式,要么使用SQL Server,要么使用Oracle=