我不是要开始 Windows/mac 类型的讨论。
就我个人而言,我不需要任何令人信服的NOLOCK
作为反思性练习的好主意。似乎在开发时一切都应该是有目的的而不是反动的 (/amen)
所以......负责程序员坚持NOLOCK
是要走的路。推荐所有临时查询和查询生产时。我还没有在每个表上看到没有 nolock 提示的存储过程。
不要成为那种走进来告诉每个人核心信念都是错误的,而没有任何支持的人。
仅查看各种博客文章下的评论会话,发送链接可能还不够。长期持有的信念等......有些人不相信这是一个问题。请参阅:我读过的每篇 nolock 博客文章下的评论部分。
目前,其他一些 DBA 正在与一些神秘的僵局搏斗。如何确定 NOLOCK 是否是来源?
有人建议从跟踪等中查看 XML,但这不会明确说明死锁是导致问题的原因,是吗?我从来没有看到过直接的错误消息。真的吗?
否则这些僵局怎么可能被钉在这个上面?
DDL 语句就像CREATE
是一个线索。在我发出警报之前,是否有任何我可以指出的输出或我可以找到的一些数据可以帮助证实我的理论?
或者我是否运行跟踪标志或扩展事件来识别发生死锁时正在运行的内容,然后从 DDL 语句中推断?
看看数据可能被 nolock 提示弄乱的所有不同方式,果断地确定似乎是一个困难的问题。
SQL 上周使用旧的 CHAR(13)+CHAR(10) 进行换行/回车工作正常。
DECLARE @text varchar(2000)
SET @text =
'Attached is your new reporting ID and temporary password.'
+ CHAR(13) + CHAR(10) + CHAR(13) + CHAR(10)
+ 'The new login/password will be updated on ' + Convert(char(10), @ticketdate,101)
Run Code Online (Sandbox Code Playgroud)
上周这按预期运行,给了我格式很好的文本,行之间有一个空格。
本周,同一台服务器上的相同代码将返回一行长文本。
这似乎是一个整理问题?或类似的东西?
代码按预期工作,因此发生了一些变化,但我无法确定可能发生了什么变化。
这似乎可能是整理问题?但它似乎是默认的拉丁语设置。