hacher une ligne SQL?

Existe-t-il un moyen de md5sum une ligne dans une table SQL pour vérifier si une colonne a été modifiée?

Je voudrais vérifier si une colonne particulière a été modifiée par rapport à une ancienne copy des données que je tiens dans un file text (que je vais md5sum en C #).

EDIT: Juste md5sum-ing chaque rangée

Il y a CHECKSUM(*) , BINARY_CHECKSUM(*) et CHECKSUM_AGG . Ils font CRC32 comme checkum, mais pour détecter les changements dans une rangée, il devrait être plus que suffisant (vous parlez de 1 sur 4 milliards de chances d'une collision faux-négatifs).

Faire un hachage cryptographique en utilisant HASHBYTES nécessite de build une expression représentant la 'ligne'.

Si vous avez SQL Server 2008 ou plus récent, vous pouvez utiliser:

 SELECT HASHBYTES('SHA1', (SELECT TOP 1 * FROM dbo.Table FOR XML RAW)) 

ou

 SELECT HASHBYTES('SHA1',( SELECT * FROM dbo.myTable as tableToHash where tableToHash.myUniqueKey=myTable.myUniqueKey FOR XML RAW )) as rowSHA1 from dbo.myTable; 

Obtenez toutes les lignes, faites le md5 de chaque colonne et comparez-le avec le md5 de la colonne correspondante dans datatables précédentes.