SQL Update语句的执行顺序
执行顺序:从左到右,变量优先,逐行更新
摘自CSDN的例子(http://topic.csdn.net/u/20091030/16/7fd75fa6-bdb9-4516-9b27-48aef69703ba.html
http://topic.csdn.net/u/20090904/16/e5dad9c7-fb59-41b9-b28d-e3b71c3e8420.html)
1.变量优先
create table #t (field1 varchar(10),field2 varchar(10))
insert #t select 'a','b'
declare @str varchar(10)
set @str='Test'
update #t set Field1=@str,@str=Field2,Field2=Field1
select * from #t
drop table #t
/*field1 field2
---------- ----------
b a*/
2.逐步更新
if OBJECT_ID('ta') is not null drop table ta
create table ta(empNo varchar(8) ,empName varchar(20),nIndex int) --drop table ta
insert into ta
select 'A0001','張三',null
union
select 'A0002','李四',null
union
select 'A0003','王二',null
union
select 'A0004','趑六',null
declare @tmpIndex int
set @tmpIndex=0
update ta set nIndex=@tmpIndex,@tmpIndex=@tmpIndex+1
select * from ta
/*
empNo empName nIndex
A0001 張三 1
A0002 李四 2
A0003 王二 3
A0004 趑六 4
*/
(1 行受影响)*/
3.字段之间, 并行执行
create table #t (field1 varchar(10),field2 varchar(10))
insert #t select 'a','b'
declare @str varchar(10)
update #t set Field1=Field2,Field2=Field1
select * from #t
/*
field1 field2
---------- ----------
b a
*/
1, 先变量再字段
2, 变量之间, 从左到右
3, 字段之间, 并行执行
相关文档:
--> Title : SQL Server2005 Synonym的使用
--> Author : wufeng4552
--> Date : 2009-10-30
1.Synonym的概念
Synonym(同义词)是SQL Server 2005的新特性。可以简单的理解Synonym为其他對象的别名。
語法
CREATE SYNONYM [ schema_name_1. ] synonym_name FOR & ......
--创建游标
DECLARE Cursor1 CURSOR FOR
SELECT NODE_NO,NODE_VALUE,SUM(RESALE_SUM-RESALERETU_SUM+SALE_SUM-SALERETU_SUM) sale_sum,
SUM(STORE_SUM) sum_store,SUM(STORE_SUM) store_sum,
sum(RESALE_PROFIT-RESALERETU_PROFIT+SALE_PROFIT-SALERETU_PROFIT-ADJUST_PROFIT) sale_profit
from ......
由于系统需求,最近在开发过程中将系统从原来的MySQL转移到SQL
2000下,其中遇到了诸多问题,花费了我不少时间。现在把我的经验拿出来告诉大家,好让大家少走弯路,节约时间。
首先是SQL
2000数据库的安装问题,在此我主要讲些关于SQL 2000的版本与操作系统的兼容性问题:SQL
2000总共有7个不同版本,适 ......
当我们用oracle的SQL*Plus工具输入sql语句的时候,SQL*Plus的默认设置总有些不合理的地方,此时我们通过以下一些方法改进:
1、可以运用SQL*Plus自身一些语句改变环境参数。
SQL> set linesize 900 ; /* 更改显示的宽度, 设置成900后, 一行数据就不会分两行显示了 */
&nb ......
建表
create table users(
id number(4) primary key,
username varchar2(10),
password varchar2(10)
)
查询表并解锁表(即可以点击输入框下面的"锁"图标工具, 即"Edit data")
select * from users for update
删除表中多余的列
alter table mobilephone drop column mobiletype
转载
------------------- ......