SQL Server Profiler:为什么 RPC 启动事件使用与 SP 启动不同的小数分隔符?

Fab*_*ujo 8 sql-server-2008 sql-server profiler sql-server-2014

试图诊断一个问题,我遇到了这种不一致。在 SQL Server Profiler 中,RPC Starting事件使用区域设置来写入实数(例如:在葡萄牙语(巴西)14.5 中将表示为 14,5)。通常这不是问题,除非 RPC 调用是带有实数参数的存储过程。那么期望表达为:

exec usp_something 'blabla', 14.5
Run Code Online (Sandbox Code Playgroud)

表示为:

exec usp_something 'blabla', 14,5
Run Code Online (Sandbox Code Playgroud)

当你有一个很长的参数列表时,这会让人很头疼。没有在网上找到任何线索如何改变这种行为。

有人知道改变这种行为的方法吗?

顺便说一句:我知道解决方法是改用SP Starting事件,它使用 '.' 为小数点分隔符。

Mey*_*uie 1

从 SQL Server 2008 开始,Microsoft 引入了扩展事件。可以用来代替SQL跟踪;也许它没有这个错误。下面是创建一个最简单的代码:

CREATE EVENT SESSION [NewSession] ON SERVER 
ADD EVENT sqlserver.rpc_completed
Run Code Online (Sandbox Code Playgroud)

它更具可读性且易于理解。保罗兰德尔有一篇很棒的文章。它描述了如何将 SQL 跟踪转换为新会话(扩展事件)