Vì nhận xét của tôi dường như cung cấp câu trả lời chính xác, tôi quyết định chuyển nó thành một câu trả lời đầy đủ cho hậu thế theo tinh thần của stackoverflow.
Sự cố của bạn dường như là do Xem thông số của SQL Server gây ra Để ngăn chặn điều này, chỉ cần gán các giá trị tham số đến của bạn cho các biến khác được khai báo ngay ở đầu SP của bạn.
Ví dụ:
CREATE PROCEDURE dbo.MyProcedure
(
@Param1 INT
)
AS
declare @MyParam1 INT
set @MyParam1 = @Param1
SELECT * FROM dbo.MyTable WHERE ColumnName = @MyParam1
GO
Tôi đã sao chép thông tin này từ eggheadcafe.com .
Chỉnh sửa:Theo nhận xét của Johann Strydom, đây là một tùy chọn khác: Tối ưu hóa các truy vấn theo hướng tham số với SQL Server TỐI ƯU HÓA Gợi ý .