Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Мога ли да използвам съхранена процедура SQLCLR, за да актуализирам колона от таблица на база данни (с помощта на компилиран dll)

Вие можете използвайте SQLCLR за извикване на криптиране от C#, въпреки че това е грешен подход. Ако трябва да направите персонализиран алгоритъм, трябва да го капсулирате в SQLCLR функция, така че да може да се използва в оператор UPDATE или дори INSERT или SELECT или навсякъде. Нещо като:

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

След това можете да използвате тази функция, както следва:

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;

НО , преди да напишете персонализиран алгоритъм за криптиране, може да искате да проверите няколкото вградени сдвоени функции ENCRYPTBY / DECRYPTBY, които може да направят точно това, от което се нуждаете:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изградете динамичен списък от стойности на оператор INSERT

  2. Cross Join без дублиращи се комбинации

  3. Как да получите броя вярно/невярно от битово поле в две отделни колони

  4. Entity framework 4 не затваря връзката в sql server 2005 Profiler

  5. Sql заявка със специални символи - как да се справя?