全部:
关于我遇到的问题,我已经搜索了几个小时。谷歌和这里有类似的问题,但没有一个是相同的。
我有一个简单的存储过程 A,正确授予我的登录权限。它基本上用数据填充一些表。它与我的登录用户在同一架构中。我可以成功执行它,这意味着所有数据都按预期填充。但是,在执行结束时,消息窗口显示:
消息 15151,级别 16,状态 1,程序 A,第 xxx 行找不到对象“A”,因为它不存在或您没有权限。
行号指向 SP 定义的结尾。我不知道为什么会出现此错误消息,而 SP 在执行结果方面似乎完全没有问题。
编辑:
SP代码如下:
IF EXISTS (SELECT * FROM SysObjects WHERE id = OBJECT_ID('dbo.spA') AND type = 'P')
DROP PROCEDURE dbo.spA
GO
CREATE PROCEDURE dbo.spA
@ReportCCY as char(3) = 'GBP',
@Date as date = null /* for regression testing */
AS
BEGIN
if (@Date is null)
select @Date = convert(varchar(20), max(VDate), 112) from JB H (nolock)
declare @dbname as varchar(50)
select @dbname = DB_NAME()
exec DBA_admin.App.p_usr_Truncate @DB=@dbname, @Schema='dbo', @Table='ATable'
insert into dbo.ATable
select r.Value, I.id
from Rates r
join Inst I (nolock) on I.idCCyBase = r.idHold and r.ccyinto = @ReportCcy and r.dtDate = @Date
END
GRANT EXECUTE ON dbo.spA TO UserGrp
GO