2010-11-25 63 views
1

我与微软SQL Server 2005的工作,当我执行这个查询:这是什么意思在SQL Server 2005

select 
    F.E, 
    S.E 
from 
    Subject 

我得到这些错误:

多部分组成的标识符“FE”不能被绑定。 多部分标识符“S.E”不能被绑定。

但是当执行这个查询,它工作正常

select * from Subject 

什么这些错误是什么意思?

回答

7

该错误表示SQL服务器不知道什么是F.ES.E是。

如果S指的是你Subject表中,instace,你需要指定名称S

SELECT S.* FROM Subject S 

这将获取从表Subject所有行的所有字段(*)(缺乏WHERE)暂时称为S

如果你想从Subject只获取场E,你可以写

SELECT S.E FROM Subject S 

这是完全相同的写作

SELECT E FROM Subject 
+0

我认为这个问题是他使用FE和SE作为列名。这就是他试图使用它的原因。只有当您将列名称放在括号中时才允许点。像`SELECT [F.E],[S.E] FROM Subject`。 – MadBoy 2010-11-25 15:52:14

+0

@MadBoy:很可能是这种情况。OP不给我们许多线索:) – 2010-11-25 16:00:42

0

这意味着FS别名未知。

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!...] 

这些是一些简单的例子。 =)

+0

简单的例子,可怕的事情。我不知道有谁知道这个更好:) – 2010-11-25 16:11:23

0

对不起超过流量浪费你的筹码只是将其命名为F_E不FE

这是一个标识符,它并没有像符号[email protected]#$#$%^%^&&*&() 但它可以有_