我跟踪了一个存储过程,如SQLServer2005探查器中所示。它';它找不到,但有效。为什么?
这很奇怪 我打开了探查器,它显然显示调用了存储过程。我打开了数据库和SP列表,但SP不存在。但是,还有另一个SP的名称相同,只是其前缀为“x” 出于安全目的,SQL Server 2005是否将SP名称映射到其他名称我跟踪了一个存储过程,如SQLServer2005探查器中所示。它';它找不到,但有效。为什么?,sql,sql-server,sql-server-2005,stored-procedures,Sql,Sql Server,Sql Server 2005,Stored Procedures,这很奇怪 我打开了探查器,它显然显示调用了存储过程。我打开了数据库和SP列表,但SP不存在。但是,还有另一个SP的名称相同,只是其前缀为“x” 出于安全目的,SQL Server 2005是否将SP名称映射到其他名称 编辑:我发现它是同义词,不管是什么 可能是愚蠢的问题,但以防万一。。。是否刷新了SP列表?您是否已在其他所有者下检查该名称的存储过程?如果您创建的存储过程没有指定所有者,那么它可能在您的所有权下的列表中(或者如果列表仅过滤为“dbo”,则根本不在列表中)。您可能没有权限查看数据库中
编辑:我发现它是同义词,不管是什么 可能是愚蠢的问题,但以防万一。。。是否刷新了SP列表?您是否已在其他所有者下检查该名称的存储过程?如果您创建的存储过程没有指定所有者,那么它可能在您的所有权下的列表中(或者如果列表仅过滤为“dbo”,则根本不在列表中)。您可能没有权限查看数据库中的所有对象添加到前面的答案中,也可能在“系统存储过程”下,如果存储过程的名称以“sp_”开头,它也可能在主数据库中。通常,当您知道某个对象存在,因为它已在查询中使用,而您在Management Studio的对象树中找不到它时,您可以这样做来找到它
select *
from sys.objects
where name = 'THE_NAME_YOU_WANT'
我刚刚检查过,它与同义词一起工作。存储过程将位于创建存储过程时选择的数据库中。因此,在从中提取数据的数据库中进行搜索,否则它将位于主数据库中。若你们仍然无法找到那个么第一个数字的解决方案是最好的。i、 e
select * from sys.objects where name = 'name of stored procedure'
你应该结束这个问题,因为你回答了你自己的问题。同意-如果回答了,请发布一个答案,等待一天,然后接受它。“不同的所有者”不止一次地咬了我-在这种情况下,你会发现它位于列表底部的顶部