SQL Server替换函数bug?

Gio*_*uri 0 sql-server sql-server-2008 sql-server-2012 sql-server-2014

我在下面的陈述中遗漏了什么吗?

select replace('xAxAxAx', 'xAx', 'xBx')
Run Code Online (Sandbox Code Playgroud)

因为它导致:

xBxAxBx
Run Code Online (Sandbox Code Playgroud)

这是已知的错误还是我错过了一些基本的东西?

微软称这个replace功能:

将所有出现的指定字符串值替换为另一个字符串值.

这不是第二次xAx出现吗?

Jam*_*s Z 6

这是定义什么是事件以及如何处理重叠实例的问题.这正是我期望它工作的方式,因为当时处理一次出现的数据意味着'xAxAxAx'是xAx + A + xAx - 并且第一次替换的结果不被认为是新发生的因此,那些2被取代.

同样,替换('xx','x','xx')的结果是xxxx,而不是xxxxxxxxxx ....