存储过程不会显示在对象资源管理器中?

时间:2011-07-29 20:41:58

标签: sql sql-server-2005 tsql stored-procedures

USE [MASTER]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
USE [MASTER]
GO
CREATE PROCEDURE [dbo].[TOTALLY_NEW] @FISCAL_YEAR NVARCHAR(4) AS
BEGIN
PRINT 'HERE'
END
GO

select * from master..sysobjects where name like 'tot%'< - 返回一行!!!!!!

我已经刷了十几次这个清单.. !! 我试过断开连接并重新连接.. 我之前在图片中创建了所有其他SP。

enter image description here

这是一张更多的照片。 enter image description here

2 个答案:

答案 0 :(得分:2)

确保您使用的用户具有查看存储过程的权限。我不是100%在SQL Server上获得权限,但我在其他一些用户创建SP的数据库上看到了这个问题,但是另一个用户没有查看或列出SP的权限。

答案 1 :(得分:1)

根据请求,将评论转换为答案:

是的,您不应该在master中创建用户对象。我唯一一次这样做的时候是我明确想要创建一个实用程序,我可以使用该数据库的上下文从任何数据库调用,你必须这样做而且不是偶然发生的 - 所以我怀疑你无意中标记了您的对象作为系统过程。您可以使用EXEC sp_MS_marksystemobject执行此操作(或者在旧版本中通过设置EXEC sp_MS_upd_sysobj_category 1 - 后者可能在2005年使用80兼容性,但不确定)。