Я унаследовал базу данных с таблицей (300 ГБ), заполненной типом данных SQL Image
.Я понимаю, что этот тип данных устарел.
В качестве обычной очистки я хочу удалить все дубликаты Image
из таблицы, где выполняются определенные условия.
Как эффективно сравнивать двоичные данные с использованием SQL?Достаточен ли оператор равенства =
Вот сценарий:
Table 'Paperwork'
int ID
int EmployeeID
int AnotherID
int AnotherFKID
image Attachment
Я хочу найти все строки, где Attachment
, EmployeeID
, AnotherID
и AnotherFKID
подобные.Это необходимо сделать с минимальным воздействием на базу данных, поскольку в ней более 1116 313 строк.
Редактировать
Тип данных SQL Server Image
не поддерживает LIKE
или обычные операторы сравнения.
Редактировать
Благодаря @Martin, который предложил привести Image
к varbinary.Я добавил к этому, чтобы получить контрольную сумму MD5, используя Hashbytes
HASHBYTES('MD5',CAST(cast([Attachment] as varbinary(max))as varbinary)) AS AttachmentMD5