小编Ind*_*942的帖子

+ =在SELECT子句中; 常数vs列

我在MS SQL Server 2017中观察到了一些奇怪的行为.

  • +=在select中充当聚合器('连接所有行的值'),当右边是常量时.
  • +=在select中,当右侧是列名时,则表示"只设置值" .(另外,这会改变其他列的聚合行为)

所以我的问题是:

  1. 为什么@c1结果只包含最后一行的值,即使+=使用了?
  2. 为什么@c2受到影响,通过改变+=- > =@c1

版本1:

BEGIN
    DECLARE
        @c1 NVARCHAR(MAX) = N'',
        @c2 NVARCHAR(MAX) = N'';

    SELECT
        @c1 = constraint_name, -- version-1
        @c2 += '+'
    FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
    ORDER BY 1 DESC
    ;

    PRINT '@c1=' + @c1;
    PRINT '@c2=' + @c2;
END
;
Run Code Online (Sandbox Code Playgroud)

版本1结果:

@c1 = fk_abcde
@c2 = ++++++++++++++++++++++++++++++++++++++++++
(`@c2` result is aggregation of many rows; …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2017

9
推荐指数
1
解决办法
116
查看次数

哪个记录 X-B3-SpanId 或 SpanId?X-B3-TraceId 还是 TraceId?(春天的侦探)

Spring 的侦探增加了 MDC X-B3-SpanId 和 SpanId。(与 TraceId 相同)

{X-B3-SpanId=0000000000000001, X-B3-TraceId=0000000000000002, X-Span-Export=false, spanExportable=false, spanId=0000000000000001, traceId=0000000000000002}
Run Code Online (Sandbox Code Playgroud)

“X-B3-”前缀值与非前缀值相同。
如果其中之一是多余的,我更愿意将其删除。(为了减少我的日志的冗长)

X-B3-SpanId 和 SpanId 之间有什么区别吗?(X-B3-TraceId 和 Traceid)
是否有充分的理由同时记录两者?

spring 文档中的图表https://cloud.spring.io/spring-cloud-sleuth/2.1.x/single/spring-cloud-sleuth.html#_propagation显示“X-B3-”前缀的东西只存在于请求头中用于传输,但如果我在没有任何这些标头的情况下发出请求,我的日志的 MDC 仍然包含“X-B3-”前缀值。


使用的依赖项:

  • org.springframework.boot:spring-boot-starter-log4j2:2.0.3.RELEASE
  • org.springframework.cloud:spring-cloud-sleuth-core:2.0.3.RELEASE

只是简单地添加了对 gradle.build 的依赖 - 没有关于侦探的定制/配置。

*MDC = log4j2 的映射诊断上下文https://logging.apache.org/log4j/2.x/manual/thread-context.html

java logging spring

4
推荐指数
1
解决办法
7793
查看次数

标签 统计

java ×1

logging ×1

spring ×1

sql ×1

sql-server ×1

sql-server-2017 ×1

t-sql ×1