Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这在SQLServer2005中意味着什么_Sql_Sql Server_Sql Server 2005 - Fatal编程技术网

这在SQLServer2005中意味着什么

这在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的表主题中获

我正在使用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的表主题中获取缺少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=