Way*_*itz 0 sql-server stored-procedures documentation sql-server-2012
记录数据库并发现我看不到 中的存储过程sys.procedures
,即使我可以在对象资源管理器中看到它们。
select p.name, x.value, p.modify_date
from sys.procedures p
left join sys.extended_properties x
on p.object_id = x.major_id
where p.is_ms_shipped = 0
and p.name NOT LIKE 'sp_%'
Run Code Online (Sandbox Code Playgroud)
为确保您可以看到您正在寻找的对象:
AttachDbFileName
连接字符串中使用类似的东西——这意味着两个不同的程序实际上将拥有数据库的两个单独副本,因此如果一个程序添加了一个过程,另一个程序将永远不会看到它。sys.procedures
已经过滤掉了系统对象,并且如果您将sp_
前缀用于自己的过程 -您不应该这样做 - 您可能不希望该过滤器将这些对象排除在外,任何一个)。VIEW DEFINITION
访问这些对象可能存在的所有潜在模式。这些将在元数据/目录视图中受到保护,但在对象资源管理器下的某些情况下仍可能向您公开(尤其是当您的对象资源管理器连接在与查询窗口不同的上下文下运行时)。另请注意,这些也是未来读者的潜在答案,而不仅仅是针对当前的 OP(我们现在知道他们对最后一个项目符号有问题)。