SQLServer语句更新的深入研究

一般来说,UPDATE是一个表,使用WHERE语句:

复制代码代码如下所示:

更新检测设置

statusind =活动

哪里

ID = 123



小心 uff1a

UPDATE语句后面的表的名称是不能启用别名。

那么在这个时候的ID字段是从t检验表(无可厚非)

但是,如果更新和附加联接表有条件约束,语句如下所示:

复制代码代码如下所示:

更新检测设置

statusind =活动



tparent母

哪里

ttest.id = 123

和ttest.parentid = parent.id

和parent.statusind =活动



小心 uff1a

在更新的空间不能使用别名

然后,找到要修改的试验记录,你必须这样写:ttest.id = 123

如果你写ID = 123直接,也不清楚是否t检验表或表的tparent ID

这个SQL语句的意思是:如果你想改变自己的statusind属性,它将与它的父statusind财产是否是also'active有关

在这一点上,使用两个表中定义的层次结构(t检验和tparent)。

但如果数据库表的设计,只有一张桌子(t检验)是用来表示数据之间的层次关系(ttest.parentid = t检验。ID),

如何写作和达到目的(如果你想修改自己的statusind财产必须是其母的statusind属性also'active相关)

实施情况如下:

复制代码代码如下所示:

更新检测设置

statusind =活动



t检验的父母,

t检验

哪里

ttest.id = 123

和ttest.parentid = parent.id

和parent.statusind =活动



解释:

要求修改自己的statusind财产关系是否其母的statusind属性also'active

更新后的表(t检验)不能,名称的别名!

表后还t检验,但更新试验记录不一样,从试验相同(更新的孩子,但从她父亲有关)。

后,你应该没有别名写t检验,它用于指定表的记录,说是要更新。

如果你需要一个从加入(t检验)表,你必须区分表的更新一个别名(t检验)。