SORU
1 EKİM 2008, ÇARŞAMBA


String.Biçim işlevselliği gibi T-SQL?

Dize işleme Dize benzer için yerleşik T-SQL işlev/genişletilmiş fonksiyon arıyorum.Format yöntemi .NET.

CEVAP
20 Temmuz 2009, PAZARTESİ


xp_sprintf bir göz atın. aşağıda örnek.

DECLARE @ret_string varchar (255)
EXEC xp_sprintf @ret_string OUTPUT, 
    'INSERT INTO %s VALUES (%s, %s)', 'table1', '1', '2'
PRINT @ret_string

Sonuç bu gibi görünüyor:

INSERT INTO table1 VALUES (1, 2)

Kullanabilirsiniz alternative function var bunu bulduk ile dize maksimum boyutu ile ilgili bir sorun:

create function dbo.fnSprintf (@s varchar(MAX), 
                @params varchar(MAX), @separator char(1) = ',')
returns varchar(MAX)
as
begin
declare @p varchar(MAX)
declare @paramlen int

set @params = @params   @separator
set @paramlen = len(@params)
while not @params = ''
begin
    set @p = left(@params @separator, charindex(@separator, @params)-1)
    set @s = STUFF(@s, charindex('%s', @s), 2, @p)
    set @params = substring(@params, len(@p) 2, @paramlen)
end
return @s
end

İçin aşağıdaki gibi işlev çağrısı olarak yukarıdaki aynı sonucu alırsınız

print dbo.fnSprintf('INSERT INTO %s VALUES (%s, %s)', 'table1,1,2', default)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • LinusTechTips

    LinusTechTip

    25 Kasım 2008
  • MotoManTV

    MotoManTV

    10 Aralık 2009
  • Roger Huffman

    Roger Huffma

    4 ŞUBAT 2007