możesz użyj SQLCLR do wywołania szyfrowania z C#, chociaż jest to niewłaściwe podejście. Jeśli potrzebujesz wykonać niestandardowy algorytm, powinieneś zawrzeć go w funkcji SQLCLR, aby można go było użyć w instrukcji UPDATE, a nawet INSERT lub SELECT lub gdziekolwiek. Coś takiego:
public class SP
{
[Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true)]
public static SqlString EncryptByAES(SqlString TextToEncrypt)
{
return DoSomething(TextToEncrypt.Value);
}
}
Następnie możesz użyć tej funkcji w następujący sposób:
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;
ALE , zanim napiszesz niestandardowy algorytm szyfrowania, możesz wypróbować kilka wbudowanych sparowanych funkcji ENCRYPTBY / DECRYPTBY, które mogą zrobić dokładnie to, czego potrzebujesz: