一尘不染

将GUID插入SQL Server

sql

我想将GUID(用户ID)插入到MSSQL的表中,但是我有一个存储的proc,但是我不断收到有关guid值的连字符’-‘的错误,这是我在proc中定义的以下内容;

@userID uniqueidentifier,
@bookID int,
@dateReserved datetime,
@status bit

INSERT INTO Reservation(BookId, DateReserved, [Status], UserId)
VALUES (@bookID, @dateReserved, @status, @userID)

但是,如果在Management Studio中执行存储的proc时,如果将单引号引起来,则可以正常运行。如何在没有存储程序问题的情况下处理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 '-'.

阅读 208

收藏
2021-03-17

共1个答案

一尘不染

只需将其从varchar中转换即可。

DECLARE @return_value int

EXEC    @return_value = [dbo].[usp_ReserveBook]
        @userID = CONVERT(uniqueidentifier, 'AE019609-99E0-4EF5-85BB-AD90DC302E70'),
        @bookID = 7,
        @dateReserved = N'09/03/2009',
        @status = 1

SELECT  'Return Value' = @return_value
2021-03-17