Intereting Posts
как наилучшим образом организовать Внутреннее Объединение в (select) заявлении Backand глубокий запрос Может кто-нибудь, пожалуйста, скажите мне, что не так с этим заявлением? Запрос SQL, Как выбрать сгенерированное поле в GROUP BY Подзапрос в запросе SQLite не работает Эквивалент GROUP BY для основных данных Несколько запросов Сохраненная процедура VS Уникальное ограничение на один столбец с исключением строки с одинаковыми значениями в другой mysql group и сортировать каждую группу Как вернуть набор результатов на основе других строк Как использовать сцепление для отладки операторов SQL, выполняемых платформой Entity Framework? MySQL – запрос запроса и отображение одной случайной строки вверху Выберите несколько столбцов из двух таблиц, используя greendao PostgreSQL: проблемы с кодировкой в ​​Windows при использовании утилиты командной строки psql Список хранимых функций, которые ссылаются на таблицу в PostgreSQL

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

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

 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 

Вам просто нужно ЗАЧИТАТЬ свой 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 

Марк

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

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

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

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

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

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