MS SQL Table中的幻像列名称是什么?

时间:2013-05-29 09:27:18

标签: sql sql-server-2008

我正在尝试编写一个MS SQL语句来获取一行。

SELECT otherfields, phantom_col FROM mytable WHERE id=5

上述SQL失败并出现错误:

Msg 207 Level 16 Stage 1, Line XX
invalid column name 'phantom_col'.

我加载了SQL Management Studio 2008 R2并连接到所述数据库和表并执行了“选择前1000行”以获取自动生成的SQL。它显示:

SELECT TOP 1000 [otherfields], [phantom_col] FROM [mydatabase].[dbo].[mytable]

然后我删除了读取[mydatabase]的部分,并立即SQL Management Studio告诉我[phantom_col]无效。

phantom_col有哪种特殊的专栏?严格来说,如果我省略冗长的[].[]表示法,我的SQL语法是否仍然正确?

编辑:我看起来终于仔细观察并发现有错误信息。编辑如上。

1 个答案:

答案 0 :(得分:1)

您的语法是正确的。 错误,因为您尚未连接到myDatabse

你也可以使用它

USE mydatabase
GO
SELECT TOP 1000 phantom_col 
FROM myTable
  

当SQL Server登录连接到SQL Server时,登录名为   自动连接到其默认数据库并获取   数据库用户的安全上下文。如果没有数据库用户   为SQL Server登录创建,登录以guest身份连接。如果   数据库用户对数据库没有CONNECT权限   USE声明将失败。如果没有分配默认数据库   登录时,其默认数据库将设置为master。

引用来自here