Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bisakah saya menggunakan prosedur tersimpan SQLCLR untuk memperbarui kolom tabel database (menggunakan beberapa dll yang dikompilasi)

Anda bisa gunakan SQLCLR untuk memanggil enkripsi dari C#, meskipun ini adalah pendekatan yang salah. Jika Anda perlu melakukan algoritme khusus, Anda harus merangkumnya ke dalam fungsi SQLCLR sehingga dapat digunakan dalam pernyataan UPDATE atau bahkan INSERT atau SELECT atau di mana saja. Sesuatu seperti:

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

Kemudian Anda dapat menggunakan fungsi tersebut sebagai berikut:

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;

TAPI , sebelum Anda menulis algoritme enkripsi khusus, Anda mungkin ingin memeriksa beberapa fungsi ENCRYPTBY / DECRYPTBY yang dipasangkan dan mungkin melakukan apa yang Anda butuhkan:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TSQL:Transaksi Coba-Tangkap di Pemicu

  2. Alasan untuk Meningkatkan ke SQL Server 2017

  3. T-SQL:Menghapus semua baris duplikat tetapi menyimpannya

  4. Bagaimana cara mendeklarasikan array di dalam Prosedur Tersimpan MS SQL Server?

  5. Berikan Pilih pada tampilan bukan tabel dasar ketika tabel dasar berada di database yang berbeda