String.Format похож на функциональность в T-SQL?

взгляните на xp_sprintf. пример ниже.

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

Результат empty-string выглядит так:

INSERT INTO table1 VALUES (1, 2)

Только что обнаружил tsql проблему с максимальным размером string-manipulation (255 символов) строки, поэтому empty-string вы можете использовать alternative function:

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

Чтобы string-manipulation получить тот же результат, что string и выше, вы вызываете функцию string-manipulation следующим образом:

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

tsql

string

2022-10-12T19:58:04+00:00