文章主要描述的是SQL Server UPDATE的赋值次序,假如你对SQL Server UPDATE的赋值次序实际操作感到十分头疼?如果是这样子的话,以下的文章将会给你相应的解决方案,以下就是相关内容的具体描述。
创新互联建站是一家专注网站建设、网络营销策划、成都微信小程序、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立十年以来,已经为上千成都水泥搅拌车各业的企业公司提供互联网服务。现在,服务的上千客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。
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;
结果:
- 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;
结果:
- @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;
结果:
- Id1 Id2
- 10 1
- 20 2
- 30 3
以上的相关内容就是对SQL Server UPDATE的赋值次序的介绍,望你能有所收获。
【编辑推荐】
网页标题:SQL Server UPDATE的赋值次序的实例演示
当前地址:http://www.36103.cn/qtweb/news48/29948.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联