Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server中的别名_Sql Server - Fatal编程技术网

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”。