【问题标题】:SSRS Report Builder Runs Procedure that I cannot find in SSMSSSRS 报表生成器运行我在 SSMS 中找不到的程序
【发布时间】:2019-03-21 19:46:06
【问题描述】:

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

我做错了什么?这似乎是一件简单的事情。

【问题讨论】:

  • 一种可能是您正在查看错误的服务器或错误的数据库。
  • 或者您没有适当的权限查看该对象或架构不同。
  • @TabAlleman 我连接到本地主机作为数据存储,并连接到该服务器上本地托管的数据库。我正在使用我的集成凭据来运行它,所以我知道我必须有权访问
  • @Brad 我作为数据存储连接到本地主机,并连接到该服务器上本地托管的数据库。我正在使用我的集成凭据来运行它,所以我知道我必须有权访问

标签: sql-server reporting-services ssms ssrs-2012


【解决方案1】:
  • 或者 SSMS 和 SSRS 报表生成器在不同的凭据下运行

  • 或执行了以下语句:

SQL:

DENY VIEW DEFINITION ON [sp_rptPoolAndHottubSchedule] TO YourAccout    

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

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

【讨论】:

  • 谢谢,我可以通过 object_Id 找到它
【解决方案2】:

试试这个 SQL:

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

并像这样手动检查:

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

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

【讨论】:

  • 感谢您的建议。这个方法我试过了,不显示
  • 您是否正在查找创建报告的正确数据库和服务器名称
【解决方案3】:

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

既然你说它可以工作,但你找不到它,我怀疑你可能没有连接到你的数据库实例。当您扩展数据库实例时,SSMS 中的可编程性 - 您根本看不到您的过程。您可以像使用您需要的任何参数一样执行 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-28
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多