Sql server SQL Server中的别名
这两种说法相等吗Sql server SQL Server中的别名,sql-server,Sql Server,这两种说法相等吗 UPDATE Table1 SET Field1=( SELECT Field2 FROM Table2 WHERE Table1.ID=Table2.ID ) FROM Table1 WHERE Field1 is null UPDATE t SET Field1=( SELECT Field2 FROM Table2 WHERE t.ID=Table2.ID ) FROM Table1 t WHERE Field1 is null 我正在努力减
UPDATE Table1 SET Field1=(
SELECT Field2 FROM Table2
WHERE Table1.ID=Table2.ID
)
FROM Table1
WHERE Field1 is null
UPDATE t SET Field1=(
SELECT Field2 FROM Table2
WHERE t.ID=Table2.ID
)
FROM Table1 t
WHERE Field1 is null
我正在努力减少锯齿的数量。
我觉得在语句中添加别名只会添加另一个表名来跟踪数据
我担心的是,在示例1中,由于我没有使用别名,它将更新整个table1,而不是在其中字段1为null的位置进行过滤
需要别名时的经验法则是什么?这两条语句是等效的,是的 我几乎总是在查询中使用别名。它可以缩短长度,而且,我个人认为,它使内容更易于阅读,因为短别名使字段名更突出
如果您使用完整的表名,它会使事情变得杂乱无章,并且很难区分您正在使用的字段(即,一目了然)。这些语句是等效的
只有在两次引用该表时才需要别名,以避免歧义。是的,它们是等效的,因为别名不会改变语句的效果,只会改变语句的可读性或解决歧义 但我会这样做:
UPDATE Table1
SET Field1 = Table2.Field2
FROM Table1
INNER JOIN Table2 ON Table1.ID=Table2.ID
WHERE Table1.Field1 is null
还是这个
UPDATE t1
SET Field1 = t2.Field2
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.ID=t2.ID
WHERE t1.Field1 is null
使用别名有助于提高可读性。就我个人而言,我喜欢为我的每个表使用短别名(1-3个字符),在可能的情况下总是为相同的表使用相同的别名,因此随着时间的推移可读性会提高。当语句为:UPDATE Table1。。。从表1中,我是指两次表吗?嗯,你是指同一个表两次。但我猜他的意思是,当您引用同一个表的两个副本时,例如,从Table1 t1内部联接Table1 t2…如果您使用派生表,也需要它。哦,是的,这更干净。当您跨数据库引用内容时,它还使阅读更容易。例如,我们的批处理过程为批量处理创建特定的命名表。例如,由于他们无法知道另一个进程是否正在使用表名#delete,因此我们创建了一个表[v50_work_a].[dbo].x_work_123456,并使用“W”为其别名。阅读“W.column”比“[v50\u work\u a].[dbo].x\u work\u 123456.column”要容易得多,我知道“W”=“process private work table”。