इसे आजमाएं:
UPDATE dbo.Login
SET
Salt=CAST('bPftidzyAQik' AS VARBINARY),
Password=0x2B89C2954E18E15759545A421D243E251784FA009E46F7A163926247FDB945F85F095DBB1FFF5B2B43A6ADAE27B8C46E176902412C4F8943E39528FF94E0DD5B
WHERE LoginID=10947
(आपको एक हेक्स मान को varbinary में संग्रहीत करने के लिए एक स्ट्रिंग डालने की आवश्यकता नहीं है - यह वही है जो डिफ़ॉल्ट रूप से उद्धरणों के बिना है)
सवाल यह है कि, आप उस पासवर्ड हेक्स मान को कैसे उत्पन्न कर रहे हैं, और क्या आप इसे पढ़ने के लिए उसी एन्कोडिंग का उपयोग कर रहे हैं? यदि आप उस डेटा को वापस एक स्ट्रिंग में बदलने की योजना बना रहे हैं, तो आपको ऐसा करने के लिए कुछ कोड की आवश्यकता होगी। यहाँ एक फ़ंक्शन है जो मैंने लिखा है जो यह करता है:
CREATE FUNCTION ConvertBinary
(
@value AS varbinary(max)
) RETURNS VARCHAR(MAX) AS BEGIN
DECLARE @result AS varbinary(max),
@result2 AS varchar(max),
@idx AS bigint;
IF @value IS null
return null;
SELECT @result = @value;
SELECT @result2 = '';
SELECT @idx = 1;
WHILE substring(@result, @idx, 1) != 0 AND @idx < len(@result)
BEGIN
SET @result2 = @result2 + cast(substring(@result,@idx,1) as char(1));
SET @idx = @idx + 1;
END
RETURN @result2;
END
मुझे नहीं पता कि यह आपके लिए कितना उपयोगी होगा, हालांकि, यह बहुत संभव है कि जो भी ऐप इन क्षेत्रों का उपयोग कर रहा है वह इस फ़ंक्शन की अपेक्षा से अलग मूल्यों को संभाल रहा है। रिकॉर्ड के लिए, यह फ़ंक्शन एक varbinary मान लेता है जो मूल रूप से utf-8 स्ट्रिंग था, और उस स्ट्रिंग का varchar मान देता है। शुभकामनाएँ!