Вставка 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.