sql >> Database >  >> RDS >> Sqlserver

Kan ik de SQLCLR-opgeslagen procedure gebruiken om een ​​kolom van een databasetabel bij te werken (met behulp van een gecompileerde dll)

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:




  1. mysql-kolomalias werkt niet, moet een lege aaneenschakeling maken om het te laten werken

  2. Wat is de beste manier om een ​​enorme hoeveelheid gegevens in PostgreSQL te laden?

  3. mysql full-text zoekfout

  4. Hoe verklein ik mijn SQL Server-database?