SQL SERVER UPDATE的赋值次序
来源:互联网 发布:青海干部网络培训平台 编辑:程序博客网 时间:2024/06/07 01:25
1) 先变量再字段
SET NOCOUNT ON;
DECLARE @i INT, @j INT
DECLARE @Table TABLE
(
Id1 INT,
Id2 INT
);
INSERT @Table(Id1, Id2)
SELECT 1, 10
UNION ALL
SELECT 2, 20
UNION ALL
SELECT 3, 30;
SELECT @i = 1, @j = 0
UPDATE @Table SET Id1 = @i, Id2 = Id1, @i = @i + 1
SELECT * FROM @Table
SELECT @i = 1, @j = 0
UPDATE @Table SET Id1 = @i, Id2 = @j, @j = @i + 10, @i = @i + 1
SELECT * FROM @Table
SET NOCOUNT OFF;
DECLARE @i INT, @j INT
DECLARE @Table TABLE
(
Id1 INT,
Id2 INT
);
INSERT @Table(Id1, Id2)
SELECT 1, 10
UNION ALL
SELECT 2, 20
UNION ALL
SELECT 3, 30;
SELECT @i = 1, @j = 0
UPDATE @Table SET Id1 = @i, Id2 = Id1, @i = @i + 1
SELECT * FROM @Table
SELECT @i = 1, @j = 0
UPDATE @Table SET Id1 = @i, Id2 = @j, @j = @i + 10, @i = @i + 1
SELECT * FROM @Table
SET NOCOUNT OFF;
结果:
Id1 Id2
----------- -----------
2 1
3 2
4 3
Id1 Id2
----------- -----------
2 11
3 12
4 13
2) 变量之间, 从左到右
SET NOCOUNT ON;
DECLARE @i INT, @j INT
DECLARE @Table TABLE
(
Id1 INT,
Id2 INT
);
INSERT @Table(Id1, Id2)
SELECT 1, 10;
SELECT @i = 1, @j = 0
UPDATE @Table SET @j = @i, @i = @i + 1
PRINT '@i = ' + CAST(@i AS VARCHAR) + ', @j = ' + CAST(@j AS VARCHAR)
SELECT @i = 1, @j = 0
UPDATE @Table SET @i = @i + 1, @j = @i
PRINT '@i = ' + CAST(@i AS VARCHAR) + ', @j = ' + CAST(@j AS VARCHAR)
SELECT @i = 1, @j = 0
UPDATE @Table SET @i = @j + 1, @j = @i
PRINT '@i = ' + CAST(@i AS VARCHAR) + ', @j = ' + CAST(@j AS VARCHAR)
SELECT @i = 1, @j = 0
UPDATE @Table SET @i = @j, @j = @i
PRINT '@i = ' + CAST(@i AS VARCHAR) + ', @j = ' + CAST(@j AS VARCHAR)
SET NOCOUNT OFF;
DECLARE @i INT, @j INT
DECLARE @Table TABLE
(
Id1 INT,
Id2 INT
);
INSERT @Table(Id1, Id2)
SELECT 1, 10;
SELECT @i = 1, @j = 0
UPDATE @Table SET @j = @i, @i = @i + 1
PRINT '@i = ' + CAST(@i AS VARCHAR) + ', @j = ' + CAST(@j AS VARCHAR)
SELECT @i = 1, @j = 0
UPDATE @Table SET @i = @i + 1, @j = @i
PRINT '@i = ' + CAST(@i AS VARCHAR) + ', @j = ' + CAST(@j AS VARCHAR)
SELECT @i = 1, @j = 0
UPDATE @Table SET @i = @j + 1, @j = @i
PRINT '@i = ' + CAST(@i AS VARCHAR) + ', @j = ' + CAST(@j AS VARCHAR)
SELECT @i = 1, @j = 0
UPDATE @Table SET @i = @j, @j = @i
PRINT '@i = ' + CAST(@i AS VARCHAR) + ', @j = ' + CAST(@j AS VARCHAR)
SET NOCOUNT OFF;
结果:
@i = 2, @j = 1
@i = 2, @j = 2
@i = 1, @j = 1
@i = 0, @j = 0
3) 字段之间, 并行执行
SET NOCOUNT ON;
DECLARE @Table TABLE
(
Id1 INT, Id2 INT
);
INSERT @Table(Id1, Id2)
SELECT 1, 10
UNION ALL
SELECT 2, 20
UNION ALL
SELECT 3, 30;
UPDATE @Table SET Id1 = Id2, Id2 = Id1
SELECT * FROM @Table
SET NOCOUNT OFF;
DECLARE @Table TABLE
(
Id1 INT, Id2 INT
);
INSERT @Table(Id1, Id2)
SELECT 1, 10
UNION ALL
SELECT 2, 20
UNION ALL
SELECT 3, 30;
UPDATE @Table SET Id1 = Id2, Id2 = Id1
SELECT * FROM @Table
SET NOCOUNT OFF;
结果:
Id1 Id2
----------- -----------
10 1
20 2
30 3
- SQL SERVER UPDATE的赋值次序
- (轉)SQL SERVER中 UPDATE的赋值次序
- SQLSERVERUPDATE的赋值次序
- [sql server] update中变量的赋值用法 实现分组更新序号
- SQL Server Select中函数执行的次序
- Sql Server中Update用法的心得
- Sql Server中Update用法的心得
- 关于SQL server的Update用法
- sql server的update select语句
- 一个sql server update的语句
- SQL SERVER 变量赋值的方法
- SQL server变量的声明和赋值
- SQL SERVER的Select赋值,是循环赋值
- SQL Server中SET赋值和SELECT赋值的区别
- sql server 中的update
- sql server update
- Sql Server Update() 函数
- SQL SERVER 变量赋值
- JavaScript代码收集
- 《给初学者的Windows Vista的补遗手册》之089
- MSXML操作XML的完整例子
- 用VC写高效的图像处理程序
- 整理的JasperReport资料
- SQL SERVER UPDATE的赋值次序
- JAVA入门,DAO设计模式
- 从mssql (sqlserver2000)中导出数据到mysql 中用load data
- 惊喜
- CentOS5安装手记
- linux下面的j2sdk的安装和配置过程
- Js中setInterval()和setTimeout()的使用和清除
- 程序员想创业首先要突破自己三关
- plsql学习