如何使用 SQL 服务器中的隐藏数据库对象?

How can I work with the hidden database objects in SQL Server?

我正在使用 SQL 服务器,出于安全原因,该服务器不显示服务器上的数据库名称、模式、表和存储过程。

我有权更改和维护对象,只是在 SSMS 中看不到它们。我想知道一种以我习惯于在 SSMS 中工作的方式使用数据库的简单方法。在 SSMS 中右键单击可为您提供许多可提高工作效率的选项(尤其是函数脚本)。

我如何才能 1) 创建存储过程的快速列表,以及 2) 快速创建脚本来更改选定的存储过程?

您可以使用

列出对象
SELECT name from sys.objects where type = 'P'

那应该显示存储过程。但是,如果对象对您隐藏,您可能无法 运行 这个。

搜索 'U' 会显示表格。

至于更改存储过程,您可以 运行 和 ALTER PROCEDURE ... 但是您可能需要盲目编写脚本。或者按照@T K Bruin 的建议,使用 sp_helptext 生成创建脚本将为您提供 alter 语句的基础。

关于您的第一个问题:

SELECT * FROM sys.procedures
SELECT * FROM sys.tables

有关详细信息,请参阅 Object Catalog Views (Transact-SQL)