在SQL Server中使用占位符格式化字符串,就像在C#中一样

时间:2013-06-05 14:48:34

标签: c# sql-server

我需要在SQL Server表中存储通用消息,然后获取值并在存储过程中使用它们,例如: “亲爱的约翰”,而不是“约翰”,我希望能够插入在程序中获得的任何名称。在C#中,如果我存储了这样的文本:“亲爱的{0}”,我可以轻松地格式化它:string.Format(myString,name)。除了REPLACE之外,我可以在SQL Server中做这样的事情吗?我听说过在SQL Server中使用CLR,但不知道它是否或如何工作。达到我需要的最佳方式是什么?

你能帮忙吗?

感谢。

1 个答案:

答案 0 :(得分:2)

xp_sprintf可能是您正在寻找的内容:

DECLARE @ret_string varchar (255)
EXEC Master.DBO.xp_sprintf @ret_string OUTPUT, '(%s, %s)', 'Hello', 'World'
PRINT @ret_string

输出(Hello, World)