sql >> Databáze >  >> RDS >> Sqlserver

Mohu použít uloženou proceduru SQLCLR k aktualizaci sloupce databázové tabulky (pomocí nějaké kompilované dll)

můžete použijte SQLCLR k volání šifrování z C#, i když toto je nesprávný přístup. Pokud potřebujete vytvořit vlastní algoritmus, měli byste jej zapouzdřit do funkce SQLCLR, aby jej bylo možné použít v příkazu UPDATE nebo dokonce v příkazu INSERT nebo SELECT nebo kdekoli. Něco jako:

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

Potom můžete tuto funkci použít následovně:

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 , než napíšete vlastní šifrovací algoritmus, možná budete chtít vyzkoušet několik vestavěných spárovaných funkcí ENCRYPTBY / DECRYPTBY, které mohou dělat přesně to, co potřebujete:




  1. Kontingenční tabulka a zřetězení sloupců

  2. Docker nerozpoznává datový adresář Postgresql

  3. Mysql konektor – problém s MultipleActiveResultSets

  4. Spustit volání v kaskádovém mazání