您好,欢迎访问一九零五行业门户网

SQL 学习笔记

sql 指merge into关键字 merge关键字是一个神奇的dml关键字。它在sql server 2008被引入,它能将insert,update,delete简单的并为一句。msdn对于merge的解释非常的短小精悍:根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中
sql 指merge into关键字
merge关键字是一个神奇的dml关键字。它在sql server 2008被引入,它能将insert,update,delete简单的并为一句。msdn对于merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。”,通过这个描述,我们可以看出merge是关于对于两个表之间的数据进行操作的。
使用merge关键字的场景比如
数据同步数据转换基于源表对目标表做insert update delete操作使用merge关键字的好处    首先是更加短小精悍的语句,在sql server 2008之前没有merge的时代,基于源表对目标表进行操作需要分别写好几条insert,update,delete。而使用merge,仅仅需要使用一条语句就好。下面我们来看一个例子。
merge into [employee] as e //merge into是要修改的目标表using test_employee as t //using是源表on t.id=e.idwhen matched then update set e.name=t.name // 如果存在匹配数据 ,就对目标表进行修改when not matched then insert values(t.id,t.name,t.department,'','') // 如果不存在匹配数据 ,就进行插入
when not matched by source then delete; //如果源表中不存在目标表中的数据,那么对目标表的中的不同步数据进行删除
sql select into 语法select into 语句从一个表中选取数据,然后把数据插入另一个表中。
select into 语句常用于创建表的备份复件或者用于对记录进行存档。
可以把所有的列插入新表:(new_table_name 可以是在数据库中不存在的表,如果不存在,那么使用这条语句之后,会在数据库中创建这个表)
select *into new_table_name [in externaldatabase] from old_tablename
或者只把希望的列插入新表:
select column_name(s)into new_table_name [in externaldatabase] from old_tablename
where11 语法
 比如上面的select into语句中在对表进行备份存档的时候你可以选择存档的方式,一种是指存表的结构,另一种表的全部数据
 select *into new_table_name [in externaldatabase] from old_tablename where 11(11 因为条件不为真,所以不会查询得到表的数据。表示只存旧表的结构)
 select *into new_table_name [in externaldatabase] from old_tablename where 1=1(1=1  因为条件为真,所以会查询得到表的数据。表示存旧表的整个数据)
其它类似信息

推荐信息