`

Sql Update语句使用表别名的方法

阅读更多

http://database.51cto.com/art/201009/227874_all.htm

 

在select中使用表别名很多人都知道,但是在Sql Update中使用表别名可能知道的人就没那么多了,下面就为您介绍这种Sql Update语句使用表别名的方法,供您参考。

AD:2013云计算架构师峰会课程资料下载

 

使用Sql Update语句,同样可以使用表别名,下面就将为您介绍Sql Update语句使用表别名的方法,希望对您学习Sql Update语句有所启迪。

在编写Sql脚本时通过表别名可以大大缩减Sql代码,同时表别名也是解决同表多次引用的手段之一。在select中使用表别名大家应该都很熟悉了:

  1. select * from TableA as A inner join TableB as B on A.Key1 = B.Key1  

但是在Sql Update中使用表别名可能就没那么多人知道了。

  1. update T    
  2.  
  3. set T.Key1 = 'xxxx'   
  4.  
  5. from TableA T  

这些天在写Sql Update语句脚本的时候需要引用两次同个表对象,如果直接像下面这样引用两次TableA则会抛出“The multi-part identifier ‘TableA.Index’ could not be bound”的错误。这是因为Sql引擎无法知道你在where子句中的TableA到底指的是要Update的表还是from后面的表。
 

  1. update TableA    
  2.  
  3. set TTableA.NextKey = T.Key   
  4.  
  5. from TableA T    
  6.  
  7. where T.Index = TableA.Index + 1   

如果不对Update后面的TableA使用别名的话,我们只能通过以下方法来实现。

  1. update TableA    
  2.  
  3. set TTableA.NextKey = T.Key   
  4.  
  5. from    
  6.  
  7. (    
  8.  
  9. select * from TableA    
  10.  
  11. )T    
  12.  
  13.  where T.Index = TableA.Index + 1  

使用别名可以得到更简洁的写法:

  1. update T1    
  2.  
  3. set T1.NextKey = T2.Key   
  4.  
  5. from TableA T1, TableA T2    
  6.  
  7. whereT2.Index = T1.Index + 1  

 

 

【编辑推荐】

Sql Server视图的概念

使用SQL查询连续号码段的方法

实现子孙树查询的经典SQL语句

查询表的字段名的sql语句写法

SQL查询最大最小值的示例

 

 

 

  • SQL Server中Delete语句表名不能用别名

  • 昨天,无意中发现程序中数据分析的结果不对,重新进行分析后,原数据仍在,有值的字段被累计。心说,不对啊,是重新生成记录后才分析的啊。难道忘了 DELETE 了?查代码,发现有删除语句。

        于是在查询分析器中执行,报错。反复试几次,明白了,Delete From 不认表名别名!回头想下,当初程序改完后主要是在Oracle中测的,SQLServer 一直没细测。

        之所以要用别名,是因为 where 条件中需要用到子查询写一些条件,下面不写那么复杂,仅说明一下问题。

    结论:
    delete from TABLEA A where A.FIELD1=10        (ORACLE适用)
    delete TABLEA from TABLEA A where A.FIELD1=10 (SQLSERVER适用)
    delete  from TABLEA where TABLEA.FIELD1=10    (Ora/SQL均适用)

分享到:
评论

相关推荐

    oracle 多表做update insert语句.docx

    今天,我们将讨论 Oracle 中的 Update 语句,包括 Update 语句的基本语法、Update 语句中使用 Select 语句、Update 语句中使用 Join 语句、Insert 语句的使用等。 一、Update 语句的基本语法 Update 语句的基本...

    Sql 语句详解

    8. SQL UPDATE 语句 12 9. SQL DELETE 语句 13 10. SQL TOP 子句 13 11. SQL LIKE 操作符 15 12. SQL 通配符 16 13. SQL IN 操作符 18 14. SQL BETWEEN 操作符 18 15. SQL Alias(别名) 19 16. SQL JOIN 20 17. SQL...

    sqlserver中delete、update中使用表别名和oracle的区别

    以下便是关于在SQL Server和Oracle中使用DELETE和UPDATE语句时对表别名使用的详细说明。 首先,我们需要注意的是,在使用DELETE语句进行数据删除操作时,表别名的使用在Oracle和SQL Server中是有区别的。在Oracle...

    《SQL》语句整理

    `UPDATE`语句用于修改表中的数据,如`UPDATE <表名> SET <列名>=更新值> WHERE <更新条件>`;`DELETE FROM`用于删除特定行,`Truncate Table`则会清空整个表,但不涉及表结构。 查询是SQL的核心功能。基础查询包括`...

    SQL 常用语句 (带注释)

    ### SQL常用语句详解(附注释) #### 一、查询(Select) 在数据库操作中,查询是最常见的需求之一。SQL提供了丰富的查询功能,通过`SELECT`语句,我们可以从数据库中检索特定的信息。 1. **基本查询**:用于检索...

    SqlServer中批量update语句

    标题所提到的"SqlServer中批量update语句"就是一个很好的例子,它展示了如何根据两个表之间的关联字段进行数据同步。 描述中提到了两张表——S_PERSON和S_USER,我们需要将S_USER表中的ACCOUNT字段更新为S_PERSON表...

    sql语句学习入门

    - 别名(Aliases)用于为表或列指定一个临时名称,以便于理解或简化查询语句,使用AS关键字来定义别名。 - JOIN操作包括INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN,用于在两个或多个表之间根据共同字段来关联...

    SQL语句表SQL语句表SQL语句表

    // 使用别名E代表Employees表 ``` 11. **ORDER BY**:按升序(ASC)或降序(DESC)对结果排序。 ```sql SELECT * FROM Employees ORDER BY Age DESC; // 按年龄降序排列 ``` 12. **GROUP BY**:对结果进行...

    SQL语言基本语句介绍

    SQL(Structured Query Language)是用于管理和操作关系数据库的语言。它包含了一系列基本语句,用于创建、查询、更新和删除数据。...这些语句是数据库管理的基础,掌握它们是理解和使用SQL的关键。

    SQL语句自动生成工具

    无需安装和卸载 支持几乎所有的SQL语法: 排序(Order By) 条件(Where) 分组(Group By) 分组条件(Having) 计算字段 SQL查询表 SQL查询子句 丰富的函数 表别名 字段别名(包括计算...

    SQL语句生成及分析器

    该工具的主要特色: 1、支持几乎所有类型的数据库, ...6、支持将SQL查询语句,替换为插入(Insert into)和更新(Update)语句 7、附属工具内嵌入Delphi IDE(支持Delphi 5和Delphi 6) 8、文件拖放(SQL和TXT文件)

    常用SQL语句.txt

    本文档从插入、更新、删除及查询四个方面详细介绍了在MySQL数据库管理中经常使用的SQL语句,并提供了实际操作的例子。以下是对这些知识点的详细解释与扩展: ### 一、插入数据(INSERT) #### 描述: 用于向表中...

    SQL常用语句大全

    这里主要涉及到了SQL中常见的查询、更新、删除、插入以及表的创建与删除等操作。 ### 一、基本查询(Select) #### 1. 按条件选择所有列 - **SQL语句**: ```sql SELECT * FROM 表名 WHERE 条件 ORDER BY 排序...

    SQL 语句完全优化

    比如,通过一次执行多个INSERT或UPDATE语句来替代单条语句的多次执行。 #### 5. 使用工具增强性能 - **SQL*Plus、SQL*Forms等工具**:这些工具提供了丰富的特性来帮助开发者更好地管理和优化SQL语句。例如,调整...

    SQL语句(增、删、改、查)及相关问题

    此方法可以将一个表中的数据复制到另一个表中。 ```sql INSERT INTO 目标表 (列1, 列2, ...) SELECT 列1, 列2, ... FROM 源表; ``` 示例: ```sql INSERT INTO AddressList (Name, Address, Email) SELECT Name, ...

    sql中as的用法和一些经典的sql语句.doc

    UPDATE语句用于更新表中的记录。例如,以下语句更新table1中column列的值: ```sql UPDATE table1 SET column = column + 1 WHERE id = (SELECT id FROM table2) ``` 这里使用了子查询来获取table2中的id列。 四...

    几条使用率最高的SQL语句

    ### 几条使用率最高的SQL语句 在数据库管理和日常工作中,SQL(Structured Query Language,结构化查询语言)是必不可少的工具之一。SQL语言能够帮助我们有效地管理、查询和更新数据库中的数据。以下是对给定文件中...

    经典SQL语句大全

    9、说明:in 的使用方法 select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’) 10、说明:两张关联表,删除主表中已经在副表中没有的信息 delete from table1 where not exists ( select * ...

    sql server的 update from 语句的深究

    在SQL Server中,`UPDATE`语句用于修改现有数据表中的记录。通常,我们使用简单的`UPDATE`语句配合`WHERE`子句来更新特定条件下的行。例如,如果我们有一个名为`Ttest`的表,并且想要将id为123的记录的状态设置为'...

Global site tag (gtag.js) - Google Analytics