Вставка GUID в SQL Server - PullRequest
       40

Вставка GUID в SQL Server

15 голосов
/ 06 июня 2009

У меня есть сохраненный процесс, в который я хочу вставить 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, он работает нормально. Как я могу без проблем обработать вставку 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 '-'.

Ответы [ 4 ]

29 голосов
/ 06 июня 2009

Просто бросьте его из варчара.

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
9 голосов
/ 06 июня 2009

Вам просто нужно 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

Марк

1 голос
/ 06 июня 2009

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

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

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

0 голосов
/ 15 июля 2013

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

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

Это займет простую строчку респ. и превратить его в объект GUID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...