uniqueidentifier поле в Transact-SQL


3 0

Тип данных uniqueidentifier в Transact-SQL достаточно противный. Если указать некорректное значение, то запрос генерирует ошибку, поэтому прежде чем передавать что-то в запрос, желательно убедиться, что значение верное. Приятней было бы, если бы запрос ничего не возвращал, но это мое желание, которое не совпадает с тем, что сделали в Microsoft. Уверен, что у них были причины, чтобы генерировать ошибку и неплохие.

Короче, все это неважно и я бы не написал об этом, если бы не выполнил вот такой запрос:

select * from session where ID = '1756cb52-5b9e-4c95-8de4-b1ae7e5c2b81test'

Обрати внимание на окончание этого Guid значения, там откровенная фигня и запрос хавается сервером. Даже больше, он возвращает строку с ID 1756cb52-5b9e-4c95-8de4-b1ae7e5c2b81. Интересное и неожиданное поведение.


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Евгений

18 Июля 2012

И зачем же такое сделали? Есть предположения?


Макс

18 Июля 2012

Вообще проблемы не вижу, данный тип определяется первыми 32 символами, а они совпадают.


Михаил Фленов

18 Июля 2012

Я не говорю, что есть проблема.


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне