Je kunt gebruik SQLCLR om encryptie vanuit C# aan te roepen, hoewel dit de verkeerde benadering is. Als u een aangepast algoritme moet doen, moet u dat inkapselen in een SQLCLR-functie, zodat het kan worden gebruikt in een UPDATE-instructie of zelfs een INSERT of SELECT of waar dan ook. Iets als:
public class SP
{
[Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true)]
public static SqlString EncryptByAES(SqlString TextToEncrypt)
{
return DoSomething(TextToEncrypt.Value);
}
}
Dan kunt u die functie als volgt gebruiken:
UPDATE tb
SET tb.FieldA = EncryptByAES(tb.FieldA)
FROM dbo.TableName tb
WHERE tb.FieldA some_test_to_determine_that_FieldA_is_not_alreay_encrypted;
MAAR , voordat u een aangepast coderingsalgoritme schrijft, wilt u misschien de verschillende ingebouwde gekoppelde ENCRYPTBY / DECRYPTBY-functies bekijken die precies kunnen doen wat u nodig hebt: