Du kan brug SQLCLR til at kalde kryptering fra C#, selvom dette er den forkerte tilgang. Hvis du har brug for at lave en brugerdefineret algoritme, bør du indkapsle den i en SQLCLR-funktion, så den kan bruges i en UPDATE-sætning eller endda en INSERT eller SELECT eller hvor som helst. Noget som:
public class SP
{
[Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true)]
public static SqlString EncryptByAES(SqlString TextToEncrypt)
{
return DoSomething(TextToEncrypt.Value);
}
}
Så kan du bruge den funktion som følger:
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;
MEN , før du skriver en brugerdefineret krypteringsalgoritme, vil du måske tjekke de flere indbyggede parrede ENCRYPTBY / DECRYPTBY-funktioner, der kan gøre præcis, hvad du har brug for: