SQL 服务器管理工​​作室在列出列时显示 "invalid column name"?

SQL Server Mgmt Studio shows "invalid column name" when listing columns?

我习惯于在 Python 或 Matlab 中编写脚本,而我在 SQL 的前几个小时一直很生气。我想让一个列列表以任何方式、形状或形式出现在屏幕上;但是当我使用像

这样的命令时
select * 
from "2Second Log.dbo.TagTable.Columns"

我一直收到错误消息:

Invalid column name '[the first column in my table]'.

尽管我从未明确要求 [table] 中的第一列,但它帮我找到了。你怎么能正确识别第一个列名,然后仍然声称它是无效的!?婴儿会被勒死。

此数据库由 Allen Bradley 的 FactoryTalk 软件生成。我真正想做的是生成一个 "TagName" 字符串的实际列表......但是当我尝试这样做时我得到了同样的错误。如果有一种方法可以实际双击 table 并打开它并查看它(就像在 Matlab 中一样),那就太理想了。

回应 juergen 在上面评论中的建议。看起来您是 运行 对 master 数据库的查询,而不是 2Second Log 实际拥有您的 table 的数据库。 (您可以通过查看屏幕截图左上角下拉列表中的数据库来判断)。您可以做两件事:

  • 将左上角的下拉菜单更改为 2Second Log。这会将您的查询定位到不同的数据库
  • 按照 juergen 的建议将您的数据库名称放在括号中,即 select * from [2Second Log].dbo.TagTable

另一方面,如果您正在寻找好的 SQL 教程,我强烈推荐 Mode SQL tutorial。这是一个让您的 SQL 脚湿润的绝佳互动平台。

当 names/field 有空格或破折号时总是使用方括号。

select * from [2Second Log].dbo.TagTable