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)