Tôi đã có một thủ tục được lưu trữ chấp nhận một tham số;
CREATE PROCEDURE [dbo].[Stored_Proc_Name] (@ParamID NVARCHAR(255) = NULL)
Tôi gọi thủ tục được lưu trữ này và chuyển qua một định danh duy nhất, đại loại như thế này;
EXEC [Stored_Proc_Name] 'a6ed99c1-29c8-43f4-9e3a-0065e6dc7fc1'
Quy trình được lưu trữ thực hiện một chút xử lý XML và trả về một tập kết quả, nó khá đơn giản.
Đối với một vài thông số được thông qua, tôi gặp lỗi chuyển đổi loại;
Msg 8114, Level 16, State 5, Procedure Stored_Proc_Name, Line 0
Error converting data type nvarchar to int.
Ban đầu tôi nghĩ rằng đây là một vấn đề với dữ liệu nhưng vấn đề sẽ tự giải quyết nếu tôi khai báo một biến cục bộ trong thủ tục được lưu trữ, như thế này và sau đó sử dụng biến cục bộ đó thay cho tham số. Những nơi duy nhất mà tham số này được sử dụng là trong WHERE
các mệnh đề trong kho lưu trữ của tôi.
CREATE PROCEDURE [dbo].[Stored_Proc_Name] (@ParamID NVARCHAR(255) = NULL)
AS
DECLARE @localID nvarchar(255)
SET @localID = @ParamID
Vấn đề được giải quyết và thủ tục chạy tốt.
Có ý tưởng nào về bước tiếp theo của cuộc điều tra hoặc điều gì đó rõ ràng mà tôi đã bỏ lỡ không?
Cập nhật:
Sau khi điều tra thêm, đây là một vấn đề với thuộc tính XML thiếu [1] nên có vẻ như đã cố gắng chuyển đổi nhiều thuộc tính gây ra lỗi. Tôi hiện đang điều tra làm thế nào nó được sửa với biến và sẽ cập nhật một khi tôi có câu trả lời hợp lý. Tôi sẽ đánh dấu câu trả lời là được chấp nhận để ai đó nhận được tiền thưởng.