SQLServer更新语句要注意

在SQLServer中 update语句中对于表不能使用别名

eg:update table a set a.column="" where ...

这样在SQLServer中是不对(在oracle中可以),不能对表使用别名,这是为什么呢?

这是因为我们一直写的update更新语句都是简写过的,实际上正确的应该是这样的:

 update t set t.Column=‘‘ from table t where ...

参考:http://blog.csdn.net/zyzlywq/article/details/6753648

参考http://www.cnblogs.com/KevinYang/archive/2010/07/09/1774063.html

时间: 2024-10-19 19:24:01

SQLServer更新语句要注意的相关文章

SQLServer查询语句收集

常用的SQLServer查询语句,有空可以多练习一下,增加记忆,可以提高工作效率! 1.数据操作 Select      --从数据库表中检索数据行和列Insert      --向数据库表添加新数据行 Delete      --从数据库表中删除数据行Update      --更新数据库表中的数据 2.数据定义Create TABLE    --创建一个数据库表Drop TABLE     --从数据库中删除表Alter TABLE     --修改数据库表结构Create VIEW    

5 详解MySQL数据库之更新语句

用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的 SELECT语句,另外一种就是更新语句,也叫做数据操作语句.言外之 意,就是对数据进行修改.在标准的SQL中有3个语句,它们是INSERT.UPDATE以及DELETE.在MySQL中又多了一个REPLACE语句,因此,本文以MySQL为背景来讨论如何使有SQL中的更新语句. 一.INSERT和REPLACE INSERT和REPLACE语句的功能都是向表中插入新的数据.这两条语句的语法类似.它们的主要区别是如何处理重复的数据

java 连接sqlserver数据库语句

import java.sql.*; /** * java 连接sqlserver数据库语句 * @author Administrator * */ public class Main {         public static void main(String [] args) throws SQLException {                                     String driverName="com.microsoft.sqlserver.jdbc.

动态更新语句,时间精度丢失

原文:动态更新语句,时间精度丢失 昨天在程序中,有想到动态的SQL语句中,去做时间更新,更新后的结果,发觉时间的精度丢失了.程序这样子, 执行结果: 上面的程序,是把时间转默认字符串,字符串再存入datetime字段中,在转换时丢失了.解决这个问题,Insus.NET使用了转换函数:http://www.cnblogs.com/insus/archive/2011/02/12/1952753.htmlhttp://www.cnblogs.com/insus/articles/1554836.ht

优化更新语句中的标量子查询

数据库环境:SQL SERVER 2008R2 今天看到开发写的一条更新语句,第一眼是觉得这个SQL的业务有问题,再细看子查询部分,才意识到这是开发人员使的“怪招”. 这个SQL能满足业务的需要,只是开发人员在写这个SQL的时候应该不会考虑到存在性能问题.具体SQL如下: UPDATE fapply_04 SET conf_y_fee_amt = ISNULL(conf_y_fee_amt, 0) + ISNULL(( SELECT SUM(fexp_03.opr_amt) FROM fexp_

mysql更新语句中的safe_mode

在mysql5中,可以设置safe mode,比如在一个更新语句中 UPDATE table_name SET bDeleted=0; 执行时会错误,报: You are using safe update mode and you tried to update a table without a WHERE clause that uses a KEY column.” 原因是在safe mode下,要强制安全点,update只能跟where了, 要取消这个限制,可以:     SET SQ

SQLSERVER PRINT语句的换行

原文:SQLSERVER PRINT语句的换行 SQLSERVER  PRINT语句的换行 想在输出的PRINT语句里面换行,可以这样做 /* SQL的换行 制表符 CHAR(9) 换行符 CHAR(10) 回车 CHAR(13) */ PRINT 'Test'+CHAR(13)+'Name' PRINT 'Test'+CHAR(10)+'Age' PRINT 'Test'+CHAR(9)+'Tel' --以文本格式显示结果 SELECT 'AAA'+ CHAR(10)+'BBB'--AAA B

SQL更新语句,Error Code: 1175. You are using safe update(在进行视图更新的时候遇到)

转发于:http://blog.csdn.net/qq_26684469/article/details/51105188?locationNum=5&fps=1 原来的SET SQL_SAFE_UPDATES = 1; 如果条件定语从句where后面跟的不是主键,则会报上面的错,将上面的安全级别设低一点即可,如下: SET SQL_SAFE_UPDATES = 0; 再执行更新语句,如 SET SQL_SAFE_UPDATES = 0; update project.demand set ti

oracle菜鸟学习之 复杂的更新语句使用

oracle菜鸟学习之 复杂的更新语句使用 实例与答案 问题:表T1里有a,b,c...N个字段,表T2里有a,b,c三个字段,然后想在T1中"c"与表T2中"c"相同的情况下,从表T2中将a,b覆盖表T1中的a,b,怎么做? 实验表: create table T1(a int,b int,c int,d int,e int); create table T2(a int,b int,c int); insert into T1 values(1,2,3,4,5)