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

昨天发现程序中数据分析的结果不对,重新进行分析后,原数据仍在,有值的字段被累计。心说,不对啊,是重新生成记录后才分析的啊。难道忘了DELETE了?查代码,发现有删除语句。于是在查询分析器中执行,报错。反复试几次,明白了,Delete From不认表名别名!回头想下,当初程序改完后主要是在Oracle中测的,SQLServer一直没细测。

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

结论:

(ORACLE适用)    DELETE FROM TABLEA A WHERE A.FIELD1=10
(SQLSERVER适用) DELETE TABLEA FROM TABLEA A WHERE A.FIELD1=10
(Ora\SQL均适用) DELETE FROM TABLEA WHERE TABLEA.FIELD1=10

两点经验:

1、测试要全面;
2、要自信,写程序时考虑的情况挺全的。

update情况

update T_report a  
      set a.status='1'
   where a.report_Seq=1234

执行失败

update a
      set a.status='1'
    from T_report a
where a.report_Seq=1234

执行成功

所以要做通用的程序,做好不使用别名

时间: 2024-08-01 08:24:03

sqlserver中delete、update中使用表别名和oracle的区别的相关文章

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

昨天发现程序中数据分析的结果不对,重新进行分析后,原数据仍在,有值的字段被累计.心说,不对啊,是重新生成记录后才分析的啊.难道忘了DELETE了?查代码,发现有删除语句.于是在查询分析器中执行,报错.反复试几次,明白了,Delete From不认表名别名!回头想下,当初程序改完后主要是在Oracle中测的,SQLServer一直没细测. 之所以要用别名,是因为where条件中需要用到子查询写一些条件,下面不写那么复杂,仅说明一下问题. 结论: (ORACLE适用)    DELETE FROM

MySQL中使用表别名与字段别名的基本教程_Mysql

MySQL 表别名(Alias)SQL 表别名 在 SQL 语句中,可以为表名称及字段(列)名称指定别名(Alias),别名是 SQL 标准语法,几乎所有的数据库系统都支持.通过关键字 AS 来指定. 表别名语法: SELECT column FROM table AS table_alias 上述 SQL 执行后的效果,给人感觉是对 table_alias 表进行查询,但实际上对单表做简单的别名查询通常是无意义的.一般是对一个表要当作多个表来操作,或者是对多个表进行操作时,才设置表别名. 表别

oracle11g-oracle的merge into中 where子句不能使用别名问题

问题描述 oracle的merge into中 where子句不能使用别名问题 CREATE OR REPLACE PROCEDURE YAXIA0617.YHYX_FI_SERIES AS CUR_TIME DATE;--当前时间 PK_GROUP_TAG VARCHAR(20);--集团pk PK_SOURCE_TAG VARCHAR(20);--资源Pk BEGIN SELECT SYSDATE-5/1440 INTO CUR_TIME FROM DUAL; SELECT PK_GROUP

数据库异常膨胀-SQLSERVER数据同步过程中,数据库急速,异常膨胀!

问题描述 SQLSERVER数据同步过程中,数据库急速,异常膨胀! 两台服务器A,B上的sqlserver需要同步两个表的数据,B中的某两张表数据要保持和A中的一样,第三方系统会没5分钟想A中插入一些新的数据.这里我采用了快照方式在A中发布要同步的两张表的数据,没两分钟更新一次快照,在服务器B上订阅A发布的数据.数据同步看起来都是没问题的,B中会得到A的新数据,可是一个月不到,B中对应的数据库文件竟然已经从原来的1G多一点的样子达到100+G,几乎要超过磁盘的最大容量,而我看A中的数据库文件大小

Mac OS X系统中Delete键有什么用 delete删除键的5种用法

  Mac OS X系统中Delete删除键有什么作用?小编经过整理发现,DELETE键的作用共有5个,基本都是删除.接下来小编将详细为各位介绍下这个删除键的作用说明. 第一种:按 delete 键,实现 Windows 键盘上退格键的功能,也就是删除光标之前的一个字符(默认); 第二种:按 fn+delete 键,删除光标之后的一个字符; 第三种:按 option+delete 键,删除光标之前的一个单词(英文有效); 第四种:按 command+delete 键,删除光标之前整行内容; 第五

Windows Update中找不到Win7 SP1怎么办?

  Win7 SP1 正式版已经发布好久了,Win7 SP2 也在酝酿中应该很快就能看到Beta版本了.但是依然有些朋友想通过Windows Update 在线升级时,碰到了难题:Windows自动更新中找不到Win7 SP1,毕竟,直接下载SP1包太庞大也太缓慢了,在线升级方式确实是最省心最靠谱的一种. 这到底是怎么回事呢?软媒小编在联想的技术支持网站上看到了一篇文章,希望能对大家有所帮助. 问题描述: 当您使用 Windows Update 检查更新时,系统没有提供下载 Windows 7

如何在win7系统中查看Update更新历史记录

  最近,小编有一个朋友的电脑出现了比较严重的故障,不管安装什么软件,都会出现不兼容的情况,拿去问了很多的人,都表示不知道什么原因引起的,直到最后,问到了专卖店,才发现原来是系统中update更新的一些补丁有问题,这才造成了众多不兼容情况的出现,那么怎么办呢?当然,只有将该补丁卸载掉了,今天我们就要来讲讲,如何在win7 32位系统电脑中查看Update的更新历史记录. 1.首先,咱们点击开始菜单,然后进入到控制面板的界面中. 2,在控制面板中,点击进入到系统和安全界面,然后点击进入到操作中心.

Jersey REST 服务中 DELETE 请求无法接收 entity body 作为参数

问题 在用 Jersey 构建 REST 服务时,当试图用 Ajax 传递一个 JSON 对象 作为参数执行 DELETE 方法时,后台接收到的对象为 null. 服务器的资源类写法为 @DELETE @Path("pojojson") @Consumes(MediaType.APPLICATION_JSON) public String deletePojoJsonBody(@QueryParam("name") String name ) { return &q

odi-ODI 在映射中选择不了知识模块IKM Oracle Incremental Update

问题描述 ODI 在映射中选择不了知识模块IKM Oracle Incremental Update SQL SRVER 全表同步到ORACLE ,不能使用IKM ORACLE Insert.GLOBAL方式,因为第二次运行时会有重复值,我想使用MERGE iNTO 的方式同步数据,但是在设置时找不到IKM Oracle Incremental Update ,这个知识模块该项目中已导入 解决方案 ODI知识模块--IKM Oracle Incremental Update 解决方案二: gsd