SSRS Report Builder 运行我在 SSMS 中找不到的过程

SSRS Report Builder Runs Procedure that I cannot find in SSMS

我有一个调用存储过程名称 sp_rptPoolAndHottubSchedule 的报告,当我从报告生成器执行该过程时,它运行没有问题。当我尝试使用 GUI 或 SYS 对象在 SSMS 中找到此过程时,找不到它。

我做错了什么?看起来很简单。

您是否连接到正确的数据库,可能是版权问题、错误的架构等?您的数据源设置正确吗?当您点击“query designer”按钮时,是否会得到类似“Unable to connect to datasource”的内容?

既然你说它可以工作,但你找不到它,我怀疑你可能没有连接到你的数据库实例。当您扩展数据库实例时,然后在 SSMS 中扩展可编程性 - 您根本看不到您的 proc 列出。你可以做一个 select object_id 就像使用你需要的任何参数:

select OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ]   
  object_name' [ ,'object_type' ] )  

这在此处记录:https://docs.microsoft.com/en-us/sql/t-sql/functions/object-id-transact-sql?view=sql-server-2017

  • 或 SSMS 和 SSRS Report Builder 运行 在不同的凭据下

  • 或执行了以下语句:

SQL:

DENY VIEW DEFINITION ON [sp_rptPoolAndHottubSchedule] TO YourAccout    

可以通过以下方式检查对象是否存在:

-- null means that object not exists
SELECT object_id ('sp_rptPoolAndHottubSchedule')

试试这个 SQL:

select * from sys.procedures 
where name like '%name_of_proc%'

然后像这样手动检查:

假设您在显示存储过程列表的 Object Explorer Details (F7) 中,单击过滤器按钮并输入名称(或部分名称)。

如果您仍然没有找到存储过程名称,那么您正在寻找不同的服务器。