Sie können Verwenden Sie SQLCLR, um die Verschlüsselung von C# aufzurufen, obwohl dies der falsche Ansatz ist. Wenn Sie einen benutzerdefinierten Algorithmus ausführen müssen, sollten Sie diesen in eine SQLCLR-Funktion kapseln, damit er in einer UPDATE-Anweisung oder sogar in einer INSERT- oder SELECT-Anweisung oder irgendwo verwendet werden kann. Etwas wie:
public class SP
{
[Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true)]
public static SqlString EncryptByAES(SqlString TextToEncrypt)
{
return DoSomething(TextToEncrypt.Value);
}
}
Dann können Sie diese Funktion wie folgt verwenden:
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;
ABER , bevor Sie einen benutzerdefinierten Verschlüsselungsalgorithmus schreiben, sollten Sie sich die verschiedenen integrierten gepaarten ENCRYPTBY / DECRYPTBY-Funktionen ansehen, die möglicherweise genau das tun, was Sie brauchen: