--1Date and Time Types
--following the queryies that it shows different accuracy
select cast('02/07/2007' as datetime)
--The result:2007-02-07 00:00:00.000,Accuracy:millisecond
select cast('02/07/2007' as datetime2)
--The result:2007-02-07 00:00:00.0000000,Accuracy:100 naonesecond
select cast('02/07/2007' as date)
--The result:2007-02-07,Accuracy:1 day
select cast('02/07/2007' as smalldatetime)
--The result:2007-02-07 00:00:00,Accuracy:1 minute
set language british;
select cast('02/07/2007' as datetime)
set language us_english
select cast('02/07/2007' as datetime)
if OBJECT_ID('customer') is not null
drop table Customer
go
create table Customer
(
cusid int not null,
CustomeName varchar(20),
companyname varchar(20),
constraint PK_cusid primary key (cusid)
)
insert into Customer(cusid,CustomeName,companyname)
select 1,'guo hu','wicresoft'
union all
select 2,'lei hu','Intel'
union all
select 3,'jun wen li','HP'
union all
select 4,'jin hao liu','IBM'
go
if OBJECT_ID('CustomerStage') is not null
drop table CustomerStage
go
create table CustomerStage
(
cusid int not null,
CustomeName varchar(20),
companyname varchar(20),
constraint PK_cusstageid primary key (cusid)
)
insert into CustomerStage(cusid,CustomeName,companyname)
select 1,'guo hu','Microsoft'
union all
select 3,'jun wen li','alibaba'
union all
select 4,'jin hao liu','siemens'
union all
select 5,'cheng fan','Bank'
go
--Customer为目标表,CustomerStage为原表,当cusid匹配时,更新Customer中的信息,否则插入
MERGE INTO Customer AS TGT
USING CustomerStage AS SCR
ON TGT.cusid=SCR.cusid
WHEN MATCHED THEN
UPDATE
SET TGT.CustomeName=SCR.CustomeName,
TGT.companyname=SCR.companyname
WHEN NOT MATCHED THEN
INSERT (cusid,CustomeName,companyname)
VALUES(SCR.cusid,SCR.CustomeName,SCR.companyname);
--Customer为目标表,CustomerStage为原表,当原表匹配目标表时更新,否则插入, 当目标表不匹配原表时删除
MERGE INTO Customer AS TGT
USING dbo.CustomerStage AS SRC
ON TGT.CUSID=SRC.CUSID
WHEN MATCHED THEN
UPDATE SET
TGT.CustomeName=SRC.CustomeName,
TGT.companyname=SRC.companyname
WHEN NOT MATCHED THEN
INSERT (CUSID,CustomeName,companyname)
VALUES (SRC.CUSID,SRC.CustomeName,SRC.companyname)
WHEN NOT MATCHED BY SOURCE THEN
DELETE;
分享到:
相关推荐
非常经典的SQL经验,适合于数据库初学者及长期从事软件开发者
Hibernate merge、update与saveOrUpdate方法的区别
功能:根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。 我们看一个例子,假如,有一总产品列表,一个分店产品...
ArcGIS中各种合并要素(Union、Merge、Append、Dissolve)的异同点分析.doc
MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。 MERGE 目标表 USING 源表 ON 匹配条件 WHEN MATCHED THEN 语句 WHEN NOT MATCHED THEN 语句; 其中最后...
Hibernate中session的merge以及update方法
merge 比较工具 merge 比较工具merge 比较工具
WinMerge文件比较工具,WinMerge文件比较工具
通过这个MERGE你能够在一个SQL语句中对一个表同时执行INSERT和UPDATE操作. 本博客介绍一下Oracle merge合并函数,业务场景:新增数据的时候要先查询数据库是否已经有改数据,有数据就更新数据,没数据才新增数据,这...
Araxis Merge是一款比对软件工具,不仅支持单个文件的比对,而且支持对两个文件夹的所有文件进行对比,并...Araxis Merge 2017:解压后,看安装说明,比较简单,纯净2017,推荐一步到位,直接使用该版本,亲测可用。
当ID在数据库中能找到的时候,update与merge的执行效果都是更新数据,发出update语句; 如果没有设置ID的话,则这个对象就当作瞬态处理: 用update的话,由于没有ID,所以会报异常,merge此时则会保存数据,根据ID...
通过MERGE语句,根据一张表(原数据表,source table)或子查询的连接条件对另外一张(目标表,target table)表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了...
http://blog.csdn.net/xkzju2010/article/details/46633425
WinMerge是一个比较两个文件差异性的工具,操作简单功能强大
1.Merge(MRG_MyISAM)存储引擎类型允许你把许多结构相同的表合并为一个表。当从合并表中执行查询,从多个表返回的结果就像从一个表返回的结果一样。 2.要创建合并表的前提是每一个合并的表必须有同样的表定义(表结构...
Merge文本比较工具
UPDATE 表2 SET 表2.C = (SELECT B FROM 表1 WHERE 表1.A = 表2.A) WHERE EXISTS (SELECT 1 FROM 表1 WHERE 表1.A = 表2.A); 尤其注意最后的外层where条件尤为重要,是锁定其批量更新数据的范围。 方法二: ...
比较两个文件之间的不同,显示结果比较明显,中文版,操作也简单...
WinMerge(java代码比较工具),相当好用,可以用来比较两个java代码的不同的地方,在java开发过程中给你解决寻找两个同名文件不同之处的烦恼!用法简单!