1. 1百万的测试数据的生成 declare @index int;  begin  set @index=0;  while @index<1000000  begin  insert into teptable values(@index,STR(@index)+'name',str(@index)+'appname');  set @index=@index+1;  end  end 2. merge into   sql 更新语句 -- 同库数据更新merge into teptable…
最近修改了数据库表结构,数据同步的时候出了问题,发现很多数据明明已经修改,但是通过视图筛选出来的还是原来的数据,所以怀疑应该是视图缓存了数据,在园子里找到下面的博文,在这里做个记录备忘. 原文链接:http://www.cnblogs.com/yashen/archive/2004/12/23/81000.html 我们在使用SqlServer时经常遇到这种情况,当修改某个表的结构后,相关的视图就不对了而导致程序错误,因此就有个下面这个存储过程. CREATE PROCEDURE Refresh…
如何使用SQL Server MERGE语句基于与另一个表匹配的值来更新表中的数据.  SQL Server MERGE语句 假设有两个表,分别称为源表和目标表,并且需要根据与源表匹配的值来更新目标表.有以下三种情况: 源表中有一些目标表中不存在的行.在这种情况下,需要将源表中的行插入目标表中. 目标表中的某些行在源表中不存在.在这种情况下,需要从目标表中删除行. 源表中的某些行与目标表中的行具有相同的键.但是,这些行在非键列中具有不同的值.在这种情况下,需要使用源表中的值更新目标表中的行. 下…
update批量更新某一列成其它列对应的值 postgresql 标准sql语句 update AA set name = BB.name , AA.sex = BB.sex from BB where AA.id = BB.id ; 注意不要写成 from AA,BB ,即不要把自身的表写在from后,不然会报异常 :table name specified more than once update AA set name = BB.name from AA,BB where AA.id =…
原文:update值与原值相同时,SQL Server会真的去update还是忽略呢? 考虑下面的情况: 当update值与原值相同时,SQL Server会真的去update还是忽略?例如: update tbname set name='abc' --name原来的值就是abc 再如: update tbname set name='abc' --name原来的值就是abc where name='abc' 接下来我们将实际测试: --Microsoft SQL Server 2008 R2…
/* 使用带关联子查询的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…
Merge关键字在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句.MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入.更新或删除操作.例如,根据在另一个表中找到的差异在一个表中插入.更新或删除行,可以对两个表进行同步.”,通过这个描述,我们可以看出Merge是关于对于两个表之间的数据进行操作的. 可以想象出,需要使用Merge的场景比如: 数据同步 数据转换 基于源表对目标表做Insert,Update,Del…
Merge关键字是一个神奇的DML关键字.它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句.MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入.更新或删除操作.例如,根据在另一个表中找到的差异在一个表中插入.更新或删除行,可以对两个表进行同步.”,通过这个描述,我们可以看出Merge是关于对于两个表之间的数据进行操作的. 可以想象出,需要使用Merge的场景比如: 数据同步 数据转换 基于源表对目标表做Ins…
前言 今天在导入数据到系统后需要根据时间排序对刚导入的TOP N条进行数据更新,之前没遇到过UPDATE TOP...ORDER BY,以此作为备忘录. SQL SERVER之UPDATE TOP...ORDER BY 我们利用AdventureWorks2012实例数据库来演示,一般情况我们如下一次性更新所有数据,如下: SELECT * FROM Production.Product 如上我们一次性将表Production.Product中的列ListPrice更新为1,结果如下: 但是我们…
“存在则更新,不存在则插入的逻辑”并发情况下的处理 在sqlserver中: 在sqlserver中,是通过可序列化隔离级别+排它锁的方式来锁定一个范围来实现的当前锁定一个不存在的记录的时候,sqlserver是通过范围锁来实现的,具体锁定的范围,表中已存在的数据和当前具体判断的Id有关参考之前写的一篇文章:http://www.cnblogs.com/wy123/p/7501261.html 简单举个例子,如下表中的表中没有任何数据行,Id 字段是primary key 当前Session锁定…