2010-10-25 3 views
3

У меня возникли проблемы с записью оператора select, чтобы сравнить два значения в t-sql, которые имеют тип изображения. Это то, что я до сих пор:Как сравнить типы данных изображений в SQL Server

SELECT a.UserId, b.UserId 
FROM [dbo].[aspnet_Profile] as a inner join [dbo].[aspnet_Profile] as b on 
    (a.UserId = <some string> AND b.UserId = <some other string>) 
WHERE BINARY_CHECKSUM(a.PropertyValuesBinary) = BINARY_CHECKSUM(b.PropertyValuesBinary) 

Но я продолжать получать сообщения об ошибках, независимо от того, что я делаю в предложении WHERE. Для вышеуказанного запроса появляется сообщение об ошибке:

Ошибка в binarychecksum. Нет сопоставимых столбцов в двоичном входе .

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

BTW: Я использую Web SQL Server (я думаю, что это 2008-е издание) ...

Благодаря!

Andrew

ответ

0

Вы можете это сделать?

select BINARY_CHECKSUM(A.PropertyValuesBinary) from aspnet_Profile as A 

Знание #s сообщений об ошибках поможет нам вам помочь.

+0

Привет, Тим, спасибо за идею. Сообщение об ошибке, которое я получаю с вышестоящим заявлением, выглядит так: – Andrew

+0

Msg 8184, Level 16, State 1, Line 1 Ошибка в binarychecksum. В входе binarychecksum нет сопоставимых столбцов. – Andrew

1

Вы не можете использовать binarychecksum на типы изображений

BINARY_CHECKSUM игнорирует столбцы несравнимых типов данных в вычислений. Несемлемые типы данных включают текст, ntext, изображение, курсор, xml и несравнимый общий язык пользовательских типов среды выполнения (CLR).

http://msdn.microsoft.com/en-us/library/ms173784.aspx

Это может быть проще хранить MD5 имеет вместе с изображением. Я не могу себе представить, что вы получаете хорошую производительность, запросив binary_checksum из всех ваших изображений!

+0

Спасибо за подсказку, Адам. Я использую Sql Server Management Studio, и мне просто хотелось сравнить два значения в таблице. Это разовый расчет, и он не является частью какого-либо кода. Есть ли способ сделать это в t-sql, без загрузки каких-либо внешних реализаций MD5? Использует ли t-sql MD5? Я на самом деле не администратор базы данных или что-то еще ... – Andrew

Смежные вопросы