と似ていますが、代わりにvarbinary(16)をテキストバージョンに変換したいと思います。SQL Server varbinary(16)をバイナリテキストに変換する
私のコードの結果が証明されるので、私は悲劇的に何かをしています。
create function GetGuidBinaryString (@value varbinary(16))
returns varchar(128)
as
begin
declare @vsresult varchar(128)
declare @inti int
select @inti = 128, @vsresult = ''
while @inti>0
begin
select @vsresult=convert(char(1), @value % 2)[email protected]
select @value = convert(int, (@value/2)), @[email protected]
end
return @vsresult
end
create table #values (binvalue varchar(128))
delete from #values
declare @intcount int
select @intcount = 0
while @intcount < 100
begin
insert into #values select dbo.GetGuidBinaryString(convert(varbinary(16),convert(bigint,2147483640) + @intcount))
select @intcount = @intcount+1
end
select * from #values
おそらく、私が関数内で行っている暗黙の変換は、関数が正の整数に対してのみ正しく機能するためです。
乾杯。フルレンジを得るために、私はCLR関数を作成する必要があります。 – Nat