आप कर सकते हैं सी # से एन्क्रिप्शन को कॉल करने के लिए SQLCLR का उपयोग करें, हालांकि यह गलत तरीका है। यदि आपको एक कस्टम एल्गोरिथम करने की आवश्यकता है, तो आपको इसे 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 फ़ंक्शंस की जाँच करना चाह सकते हैं जो ठीक वही कर सकते हैं जो आपको चाहिए: