Невозможно выполнить уникальный указанный входной параметр в хранимой процедуре. - PullRequest
0 голосов
/ 18 декабря 2018

Когда я выполняю хранимую процедуру с первым входным параметром типа uniqueidentifier, который является столбцом первичного ключа в таблице, в которую вставляются значения, он выдает следующую ошибку.Я не смог найти, что не так с этим вводом или хранимой процедурой.

EXEC    @return_value = DbInsert
        @id =   EX642793-385D-604F-BE81-0000CD376836,
        @name= N'000001_067_0xed642993385d604fbe810000cd376836.tif',
        @image = 0x49492A00080000001300FE00040001000000020000000001040001000000C50900000101040001000000E90D0000020103000

SELECT  'Return Value' = @return_value

Моя хранимая процедура:

CREATE PROCEDURE DbInsert
    @id UNIQUEIDENTIFIER,
    @name VARCHAR(255),
    @image IMAGE
AS
BEGIN
    SET NOCOUNT ON;

    INSERT INTO TbImage (Id, Name, Image )
    VALUES (@id, @name, @image)
END

Ошибка:

Сообщение 102,Уровень 15, состояние 1, строка 7
Неверный синтаксис рядом с '-'.

Обновление

Я попытался щелкнуть правой кнопкой мыши хранимую процедуру и выполнить, и он не спрашивал меня о цитате и все, но запрос, который я написал выше, это то, что он показал как ошибку.Когда я пытаюсь с цитатой, он выдает ниже ошибки

Сообщение 8114, Уровень 16, Состояние 1, Процедура DbInsert, Строка 0 [Batch Start Line 2]
Ошибка преобразования типа данных varchar в uniqueidentifier.(Затронуты 1 строка)

Обновите снова

Используя допустимое значение Uniqueidentifier, изменив некоторые числа самостоятельно, однако заменил X другим символом... еще не повезло.

EM662993-385D-604F-BE81-0000CD376838

1 Ответ

0 голосов
/ 18 декабря 2018

Есть 2 проблемы с вашим кодом:

  1. Вам необходимо указать одинарные идентификаторы, например 'DE5AA552-0601-453C-AF21-9B285FA4E920'.

  2. Идентификатор guid / uniqueidentifierдолжен содержать только действительные шестнадцатеричные символы, и X не является действительным шестнадцатеричным символом и, следовательно, недопустимо в уникальном идентификаторе, поэтому 'EX642793-385D-604F-BE81-0000CD376836' недопустимо, но 'EA642793-385D-604F-BE81-0000CD376836' является.Вы можете использовать http://guid.us/Test/GUID для проверки и создания направляющих.

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