Это старый вопрос, но он подходит для поиска, и, хотя выбранный ответ правильный, он может работать не для всех легко.Например, при использовании привязок .NET к SQLite.
Причина в том, что когда GUID имеет формат a8828ddf-ef22-4d36-935a-1c66ae86ebb3
, вы не можете просто удалить дефисы и установить его в X'...'
.GUID состоит из нескольких частей, и база данных хранит двоичный файл по-разному.
Когда GUID равен a8828ddf-ef22-4d36-935a-1c66ae86ebb3
, он будет храниться с прямым порядком байтов как X'df8d82a822ef364d5a93b3eb86ae661c'
.Обратите внимание, что все части в строке перевернуты.
Конечно, если вы вставляете данные напрямую, удаляя дефисы как X'a8828ddfef224d36935a1c66ae86ebb3'
, вы также можете получить их с этим, но если вы позволите .NET обрабатывать преобразованиеGUID будет храниться в виде байтовых представлений с прямым порядком байтов.
(Это все предполагает, что архитектура с прямым порядком байтов не тестировалась на старшем порядке)