sql >> Databasteknik >  >> RDS >> Sqlserver

Kan jag använda SQLCLR lagrad procedur för att uppdatera en kolumn i en databastabell (med hjälp av någon kompilerad dll)

Du kan använd SQLCLR för att anropa kryptering från C#, även om detta är fel tillvägagångssätt. Om du behöver göra en anpassad algoritm, bör du kapsla in den i en SQLCLR-funktion så att den kan användas i en UPDATE-sats eller till och med en INSERT eller SELECT eller var som helst. Något i stil med:

public class SP
{
  [Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true)]
  public static SqlString EncryptByAES(SqlString TextToEncrypt)
  {
     return DoSomething(TextToEncrypt.Value);
  }
}

Sedan kan du använda den funktionen enligt följande:

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 , innan du skriver en anpassad krypteringsalgoritm, kanske du vill kolla in de flera inbyggda parade ENCRYPTBY / DECRYPTBY-funktionerna som kan göra precis vad du behöver:




  1. Python, konvertera 4-byte char för att undvika MySQL-fel. Felaktigt strängvärde:

  2. Kör MariaDB i en hybrid molninstallation

  3. Vad är det bästa sättet att välja ett tabellnamn dynamiskt under körning?

  4. Skapa ny användare i MySQL och ge den full tillgång till en databas