Talal Hallaj Asked: 2023-06-02 14:54:27 +0800 CST2023-06-02 14:54:27 +0800 CST 2023-06-02 14:54:27 +0800 CST SSMS 中的链接服务器视图中缺少存储过程 772 为什么在 SSMS 中打开链接服务器时看不到存储过程或函数?我已经创建了链接服务器并且可以看到数据库,但是在每个数据库中,只显示表和视图。链接服务器连接到安装在另一台服务器上的另一个 SQL Server 实例,我希望看到 Programmability 文件夹以及其中的存储过程和函数 sql-server 1 个回答 Voted Best Answer J.D. 2023-06-02T20:32:58+08:002023-06-02T20:32:58+08:00 这是 SSMS 中的一个限制,因为我确信这是创建它的开发人员的设计选择。 原因可能是因为可以为多种不同的数据库系统创建链接服务器对象,例如 Oracle SQL、MySQL、Snowflake 数据库等。并非每个数据库系统都有过程和函数,或者即使有,也没有在与 SQL Server 的方式相同。而表和视图是大多数现代数据库系统中存在的非常一致的概念和对象类型。 因此,要在 SSMS 中创建通用解决方案,链接服务器仅在链接服务器对象节点下公开表和视图。但是当您编写使用由 4 部分组成的名称引用它们的 T-SQL 时,这些其他对象仍然是可查询的(如果它们存在的话)。例如:EXEC MyLinkedServer.DatabaseName.SchemaName.spSomeStoredProcedure是有效的语法。
这是 SSMS 中的一个限制,因为我确信这是创建它的开发人员的设计选择。
原因可能是因为可以为多种不同的数据库系统创建链接服务器对象,例如 Oracle SQL、MySQL、Snowflake 数据库等。并非每个数据库系统都有过程和函数,或者即使有,也没有在与 SQL Server 的方式相同。而表和视图是大多数现代数据库系统中存在的非常一致的概念和对象类型。
因此,要在 SSMS 中创建通用解决方案,链接服务器仅在链接服务器对象节点下公开表和视图。但是当您编写使用由 4 部分组成的名称引用它们的 T-SQL 时,这些其他对象仍然是可查询的(如果它们存在的话)。例如:
EXEC MyLinkedServer.DatabaseName.SchemaName.spSomeStoredProcedure
是有效的语法。