代码之家  ›  专栏  ›  技术社区  ›  ThomasRones

t-sql——merge into语句中的表别名——这两个中哪一个更好,为什么?

  •  1
  • ThomasRones  · 技术社区  · 8 年前

    我认为,由于MERGE-INTO和USING语句定义了源表和目标表,默认情况下将使用源表中的值插入目标表,因此没有理由使用别名。

    哪一个更好?为什么?有性能差异吗?。。。我想我需要学习查询优化器的工作原理)

    MERGE INTO TargetSchema.TargetTable AS T
    USING SourceSchema.SourceSchema As S 
    ON S.Id = T.Id
    WHEN NOT MATCHED THEN
       INSERT(
           [Id]
          ,[Status]
          ,[Another Column]   
          )
    
       VALUES(
           [Id]
          ,[Status]
          ,[Another Column]
          );
    

    在值中显式使用表别名:

    MERGE INTO TargetSchema.TargetTable AS T
    USING SourceSchema.SourceSchema As S 
    ON S.Id = T.Id
    WHEN NOT MATCHED THEN
       INSERT(
           [Id]
          ,[Status]
          ,[Another Column]   
          )
    
       VALUES(
           [S].[Id]
          ,[S].[Status]
          ,[S].[Another Column]
          );
    
    2 回复  |  直到 8 年前
        1
  •  1
  •   Aparna    8 年前

    别名主要用于提高可读性或命名计算列。它对查询的性能没有任何影响

        2
  •  1
  •   Nick.Mc    8 年前

    别名对性能没有影响