求教!sql server 的问题!

问题如图:

求教了
,ID是肯定可以全部对应上的,我自己写的感觉太累赘,太复杂,应该会有更简单的方式,请告诉我更简单的批量更新方式,拜托了

update b set b.name=a.name from a inner join b on a.id=b.id追问

我先试试

追答

试完反馈

追问

能不能只有不对应的数据才修改呢,就是说name或sex不对应才修改,对应了就不用修改了,拜托了

追答update b set b.name=a.name from a inner join b on a.id=b.id where not exists (select 1 from a,b where a.name=b.name and a.sex=b.sex)

这样?

其实效率都差不多,都要逐行扫描,判断是否一样

你先做好备份再执行吧

追问

结果不对啊,哎,麻烦你了,我再想想

追答update b set b.name=a.name from a inner join b on a.id=b.id 
where b.id in (select a.id from a,b where a.id=b.id and a.sex=b.sex and a.name<>b.name)

这样呢

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-06-05
delete from b ;

insert into b select * from a ;

先删除在新增,比直接更新效率高点。追问

不行啊,如果数据量过大,全部删除新增太影响效率,我要做的是A表修改了某条数据B表才修改某条数据,麻烦了,再想想嘛

求教!sql server 的问题!
update b set b.name=a.name from a inner join b on a.id=b.id

求助SQL SERVER循环问题
UPDATE A SET A.列1=B.列1, A.列2=B.列2 --A.列3=B.列3…… FROM A INNER JOIN B ON A.Y=B.H --WHERE条件语 --记得采纳

Microsoft SQL Server 2008 代理无法启动,求教
server有个专门管理后台组件、服务的程序,要打开sql Server有些服务是必须打开的,看你发的图应该没打开,把那些都打开应该就可以了,只用过2016的,2016的是这样。

.net里SqlServer连接问题
打开vs,工具栏视图,服务器管理器,数据库连接,添加数据库连接,选择你的sql server类型,然后选择服务器,数据库,windows验证.添加完成,对着你的连接右键属性,里面有个connection string属性.复制下来放到strcon里面 注意,windows验证只适合本机,也就是说你的程序和数据库服务器一定在同一个机器上.当然域账户...

求教SQL。刚开始安装SQL SERVER2008就提示未能加载文件或程序集的错误...
直接删除 (C:\\Users\\lenovo\\AppData\\Local\\Microsoft_Corporation\\LandingPage.exe_StrongName_ryspccglaxmt4nhllj5z3thycltsvyyx\\10.0.0.0\\user.config line5)。 下的user.config

安装SQL Server 2012时,安装路径不可选,为灰色的,怎么回事?
sql 2012 的共享目录不可更改的!

SQL SERVER2008 R2 求教,故障日志不断增大,撑爆
一、简单回答:1、改你的SQL SERVER2008 R2中的工作数据库的模式为简单。(打开SQL的管理器,对相关数据库点右键,点 属性 -》选项-》“恢复模式”右边的下拉,改为“简单”)。2、对相关数据库点右键,点“任务”-》“收缩”-》“文件”-》文件类型 那儿 改 日志,然后点“确定”。3、如果需要...

SQL SERVER2008 R2 求教,故障日志不断增大,撑爆
1、SQL SERVER 2008 的日志会越来越大,它就是日志,不能称故障日志,它记录了数据库的绝大多数动作,包含每一个表的改写与插入。如果是用于生产的,可能会大到可怕,我的数据库,前几天一看,不到1个月就十多个G的日志文件。2、要收缩、清除,关键点就一个:先把数据库的恢复模式从默认的“...

求教,sql server 2008 使用时,光标问题
你单独写这句当然不行了,DECLARE @i int 这句你只声明了 i 是一个int类型的变量,但你还没有输入一条你想要的sql 用来执行的语句,问题是你写DECLARE @i int 想用来做什么用

求教在sqlserver2008中的表中怎么添加一列自增的列?
1、例如给某表添加一个Num自增列,这张表已经有很多行数据了,通过sqlserver表设计器,添加一个新字段Num,如图所示,2、添加字段后,点击保存,会弹出一个小框“不允许保存更改。所做的更改要求删除并重新创建一下表”,这个要求不能满足啊,这么多的数据,删除了怎么办?3、点击SQL Server Management...

相似回答
大家正在搜