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
2021-12-05T21:20:40+00:00
2022-10-12T19:58:04+00:00
LoDaRioS
Вопросы с похожей тематикой, как у вопроса:
String.Format похож на функциональность в T-SQL?
Предупреждение о файлах Cookies
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.