我有一个存储过程是我想在MS sql中的表中插入一个GUID(用户ID),但是我不断收到一个关于作为guid值一部分的连字符’ – ‘的错误,这里是我下面定义的proc;
@userID uniqueidentifier,@bookID int,@dateReserved datetime,@status bit INSERT INTO Reservation(BookId,DateReserved,[Status],UserId) VALUES (@bookID,@dateReserved,@status,@userID)
但是,如果在Management Studio中执行存储过程,当我将单引号放在值上时,运行正常.我如何处理guid插入没有问题从我的存储过程?
多谢你们.
更新
这是sql exec
DECLARE @return_value int EXEC @return_value = [dbo].[usp_ReserveBook] @userID = AE019609-99E0-4EF5-85BB-AD90DC302E70,@bookID = 7,@dateReserved = N'09/03/2009',@status = 1 SELECT 'Return Value' = @return_value
这是错误消息
Msg 102,Level 15,State 1,Line 5 Incorrect Syntax near '-'.
解决方法
只是把它从一个varchar.
DECLARE @return_value int EXEC @return_value = [dbo].[usp_ReserveBook] @userID = CONVERT(uniqueidentifier,'AE019609-99E0-4EF5-85BB-AD90DC302E70'),@status = 1 SELECT 'Return Value' = @return_value