我有多个已保存的查询(在我开发它们时每个都运行良好)。但是当我将它们加载到 SSMS 中时,它们会立即在脚本中的每个表名中显示错误。此外,我无法从“可用数据库”框中选择相关的数据库(或该服务器上的任何数据库,就此而言)并且USE [DB_NAME]
命令也不起作用。
但是,如果我将在“对象资源管理器”中导航到我想要的服务器上任何数据库中的任何表,甚至做一个简单的Select Top 1000
,然后粘贴整个不起作用的查询 - 瞧 - 它运行良好。
我同时连接到不同机器上的多个 SQL 服务器是否重要?如果需要 - 所有 SQL Server 2012。
有没有人知道发生了什么事?每次我需要运行查询时都要经历上述所有步骤,这非常烦人。谢谢!
您可能需要在“USE [DB_NAME]”语句后添加“GO”。一些命令需要在批处理中排在第一位。使用 GO,USE DB 命令作为第一批执行,随后是另一批。
所以:
好吧,在业余时间进一步调查之后,看起来这是一个功能,而不是错误。默认情况下,SSMS 在对象资源管理器中当前选定服务器的上下文中打开查询窗口。然后将针对这个“活动”服务器检查语法,如果查询使用不同的服务器,它将在所有地方都带有红色下划线。
对此的解决方案有些简单,我们将看到它在未来的效果如何:在
SQLCMD mode
with:CONNECT
语句中使用 SSMS。