mssql sql高效关联子查询的update 批量更新

mssql sql高效关联子查询的update 批量更新

/*
使用带关联子查询的Update更新
--1.创建测试表

create TABLE Table1
(
a varchar(10),
b varchar(10),
c varchar(10),
CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
(
a ASC
)
) ON [PRIMARY]

create TABLE Table2
(
a varchar(10),
c varchar(10),
CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED
(
a ASC
)
) ON [PRIMARY]
GO
--2.创建测试数据
Insert into Table1 values('赵','asds',null)
Insert into Table1 values('钱','asds','100')
Insert into Table1 values('孙','asds','80')
Insert into Table1 values('李','asds',null)

Insert into Table2 values('赵','90')
Insert into Table2 values('钱','100')
Insert into Table2 values('孙','80')
Insert into Table2 values('李','95')
GO
select * from Table1

--3.通过Update方式更新
Update Table1 set c = (select c from Table2 where a = Table1.a) where c is null
GO

--4.显示更新后的结果
select * from Table1
GO
--5.删除测试表
drop TABLE Table1
drop TABLE Table2

分类:默认分类 时间:2012-01-09 人气:9
本文关键词:
分享到:

相关文章

  • sql update 语法与实例 2012-04-24

      sql update 语法与实例   在日常使用的数据库教程是一个不断变化的数据存储。在SQL是用于修改数据已经在数据库中的更新和删除commands.The更新语句可以更新表格中的一个或多个记录命令。   UPDATE table_name   SET column_name = expression   WHERE conditions   实例一   UPDATE AntiqueOwners   SET Address = '77, Lincoln st.'   WHERE Owner

  • SQL update select 2012-09-23

      最常用的update语法是:   UPDATE   SET = , SET =   如果我的更新值Value是从一条select语句拿出来,而且有很多列的话,用这种语法就很麻烦   第一,要select出来放在临时变量上,有很多个哦   第二,再将变量进行赋值。   列多起来非常麻烦,能不能像Insert那样,把整个Select语句的结果进行插入呢?就好象下面   insert into table1   (c1, c2, c3)   (select v1, v2, v3 from tabl

  • PL/SQL中文乱码修正(导入或者Update操作) 2013-05-13

    PL/SQL中文乱码修正(导入或者Update操作) 我根据需求,,需要修改数据库的部分表格的部分字段,然而在Update的时候,出现了中文乱码(Type字段)。 此时,我用的是客户端,服务器没有安装,在另一台机器上,所以,我需要做的是修改客户端编码: 在环境变量中,添加以下字段: [plain] NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK 这样,重启PL/SQL,无需修改什么注册表了。 重启的时候,提示: 也就是提醒你,编码修改成功了, 此时只要在PL

  • 经典MSSQL语句大全和常用SQL语句命令的作用 2012-05-01

    下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL类型包括数据库、表的创建,修改,删除,声明—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML类型包括数据表中记录的查询,删除,修改,插入—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL类型包括数据库用户赋权,废除用户访问权限, 提交当前事务,中止当前事务—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说

  • dedecms SQL盲注漏洞(已经确定可以直接update出密码) 2014-02-22

    漏洞处在ROOT_PATH/member/ajax_membergroup.php的53、54行 $mdescription变量是可控的,并且没有任何过滤,为什么?接下里继续看 再看第一行 包含了ROOT_PATH/member/config.php 然后跟着 ROOT_PATH/member/config.php 第10行,包含了ROOT_PATH/include/filter.inc.php 接着来到filter.inc.php 首先这里有个典型的变量覆盖,并且会遍历里面对其进行过滤 来看看

  • MSSQL优化SQL语句 提高数据库的访问性能 2012-02-12

    目录 1、什么是执行计划?执行计划是依赖于什么信息。 2、 统一SQL语句的写法减少解析开销 3、 减少SQL语句的嵌套 4、 使用“临时表”暂存中间结果 5、 OLTP系统SQL语句必须采用绑定变量 6、 倾斜字段的绑定变量窥测问题 7、 begin tran的事务要尽量地小。 8、 一些SQL查询语句应加上nolock 9、加nolock后查询经常发生页分裂的表,容易产生跳读或重复读 10、聚集索引没有建在表的顺序字段上,该表容易发生页分裂 11、使用复合索引提高多个where条件的查询速度

  • MSSQL基础教程之SQL流程控制命令 2013-12-04

      Transact-SQL 语言使用的流程控制命令与常见的程序设计语言类似主要有以下几种控制命令。   4.6.1 IF…ELSE   其语法如下:   IF <条件表达式>   <命令行或程序块>   [ELSE [条件表达式]   <命令行或程序块>]   其中<条件表达式>可以是各种表达式的组合,但表达式的值必须是逻辑值“真”或“假”。ELSE子句是可选的,最简单的IF语句没有ELSE子句部分。IF…ELSE用来判断当某一条件成立时执行某段

  • mssql 使用游标遍历方式批量update更新数据 2013-07-10

    mssql 使用游标遍历方式批量update更新数据 /* --1.创建测试表 create TABLE Table1 ( a varchar(10), b varchar(10), c varchar(10), CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED ( a ASC ) ) ON [PRIMARY] create TABLE Table2 ( a varchar(10), c varchar(10), CONSTRAINT [PK_Table2

  • 解决并清除SQL被注入 2012-08-27

    在SQL查询分析器执行以下代码就可以了。 declare @t varchar(255),@c varchar(255) declare table_cursor cursor for select a.name,b.name from sysobjects a,syscolumns b ,systypes c where a.id=b.id and a.xtype='u' and c.name in ('char', 'nchar', 'nvarchar', 'varchar','text',

Copyright (C) quwantang.com, All Rights Reserved.

趣玩堂 版权所有 京ICP备15002868号

processed in 0.171 (s). 10 q(s)