Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

varbinary से varchar w/o master.dbo.fn_varbintohexstr

md5 और sha1 के लिए आप हैशबाइट्स का उपयोग कर सकते हैं . बेस 64 प्राप्त करने के लिए आप एक यूडीएफ बना सकते हैं जो रूपांतरण करता है और आपके गणना कॉलम में इसका उपयोग करता है।

समारोह BinToBase64:

create function BinToBase64(@Bin varbinary(max)) returns varchar(max) as
begin
  return CAST(N'' AS XML).value('xs:base64Binary(xs:hexBinary(sql:variable("@Bin")))', 'VARCHAR(MAX)')
end

समारोह BinToHexString:

create function BinToHexString(@Bin varbinary(max)) returns varchar(max) as
begin
  return '0x' + cast('' as xml).value('xs:hexBinary(sql:variable("@Bin") )', 'varchar(max)'); 
end

इस तरह प्रयोग करें:

create table TestTable 
(
  Col1 varbinary(max), 
  Col2 as dbo.BinToHexString(hashbytes('MD5', Col1)),
  Col3 as dbo.BinToHexString(hashbytes('SHA1', Col1)),
  Col4 as dbo.BinToBase64(Col1),
)
insert into TestTable values (12345)

select *
from TestTable

हैशबाइट्स और एक अद्वितीय पहचानकर्ता कॉलम का उपयोग कर अद्वितीय बाधा varbinary कॉलम

create table TestTable 
(
  ID uniqueidentifier default(newid()),
  Col1 varbinary(max), 
  Col2 as coalesce(hashbytes('MD5', Col1), cast(ID as varbinary(8000))) persisted
)

create unique index IX_TestTable_Col2 on TestTable(Col2)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में NULL को किसी अन्य मान से कैसे बदलें - ISNULL ()

  2. SQL सर्वर मेमोरी-ऑप्टिमाइज़्ड टेबल्स में इंडेक्स का उपयोग करना

  3. Sql सर्वर में अस्थायी तालिका रिकॉर्ड सीमा

  4. क्या SQL सर्वर एक्सप्रेस के लिए SQL सर्वर प्रोफाइलर है?

  5. विशिष्ट पहचानकर्ता बनाम पहचान बनाम सामग्री कोड -- जो प्राथमिक कुंजी के लिए सबसे अच्छा विकल्प है?