Вставка GUID в SQL Server

У меня есть сохраненный proc, я хотел бы вставить GUID (идентификатор пользователя) в таблицу в MS SQL, но я все время получаю сообщение об ошибке "-", которая является частью значения guid, здесь моя процедура определена ниже;

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

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

Но когда я помещаю одинарные кавычки вокруг значения, если хранимый процесс выполняется в Management Studio, он работает нормально. Как я могу обработать вставку направляющих без проблем из моей сохраненной процедуры?

Спасибо, ребята.

Обновление Здесь 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 '-'.

Ответы

Ответ 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

Ответ 2

Вам просто нужно QUOTE ваш GUID:

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

Марк

Ответ 3

Вам нужны одинарные кавычки вокруг вашего GUID.... это просто строка для сервера sql.

Вы можете попробовать, чтобы sp генерировать GUID с помощью sql-функции newid()... sql-сервера, только я думаю.

И если вы вытаскиваете идентификатор GUID из другой таблицы, пусть SP будет получать этот GUID из этой таблицы.

Ответ 4

Попробуйте использовать это:

sql_cmd.Parameters.AddWithValue
("@Company_ID",**Guid.Parse**("00000000-0000-0000-0000-000000000000");

Это займет простую строку rep. и превратите его в GUID obj.