Dado que mi comentario parecía proporcionar la respuesta correcta, decidí convertirlo en una respuesta completa para la posteridad con el espíritu de stackoverflow.
Su problema parece ser causado por de SQL Server .Para evitarlo, simplemente asigne los valores de sus parámetros entrantes a otras variables declaradas justo en la parte superior de su SP.
Vea este bonito artículo al respecto
Ejemplo:
CREATE PROCEDURE dbo.MyProcedure
(
@Param1 INT
)
AS
declare @MyParam1 INT
set @MyParam1 = @Param1
SELECT * FROM dbo.MyTable WHERE ColumnName = @MyParam1
GO
Copié esta información de eggheadcafe.com .
Editar:según el comentario de Johann Strydom, aquí hay otra opción:Optimizar consultas basadas en parámetros con SQL Server OPTIMIZE FOR Hint .