Error Message:
Msg 10515, Level 16, State 1, Procedure sp_create_plan_guide, Line 15
Cannot create plan guide ‘%.*ls’ because the module ‘%.*ls’ does not exist or you do not have needed permission.
Severity level:
16.
Description:
This error message appears when you try to create a planguide, but the object specified in the @module_or_batch parameter does not exist or you do not have permission.
Consequences:
The T-SQL statement can be parsed, but causes the error at runtime.
Resolution:
Errors of the Severity Level 16 are generated by the user and can be fixed by the SQL Server user. The statement cannot be executed this way. The object must exist and you must have permissions.
Versions:
This error message was introduced with SQL Server 2005.
Example(s):
IF OBJECT_ID (‘dbo.t’) IS NOT NULL
DROP TABLE dbo.t;
GO
CREATE TABLE dbo.t
(
c1 int
);
GO
IF OBJECT_ID (‘dbo.p’) IS NOT NULL
DROP PROCEDURE dbo.p;
GO
CREATE PROCEDURE dbo.#p
@p int
AS
SELECT
c1
FROM
dbo.t
WHERE
c1 = @p;
GO
EXEC sp_create_plan_guide
@name = ‘Guide1’,
@stmt = ‘SELECT
c1
FROM
dbo.t
WHERE
c1 = @p’,
@type = ‘OBJECT’,
@module_or_batch = ‘p’,
@params = NULL,
@hints = ‘OPTION (OPTIMIZE FOR (@p = 1))’;
EXEC sp_control_plan_guide ‘DROP’, ‘Guide1’;
Remarks:
In the above example we try to create a planguide. Because the procedure dbo.p does not exist when the sp_create_plan_guide procedure is executed, the error is raised.