标签归档:update

mssql sqlserver 使用视图(view)更新数据的方法分享


摘要:
下文讲述使用视图(view)的方式更新数据的方法,如下所示:
实验环境:sql server 2008 R2


视图更新数据的思路为:
首先创建一个视图,然后对视图执行update操作
例:

  create view vw_temp 
  as 
     select a.keyId,a.name,
              b.info  from tableName1 a 
                   left join tableName2 b on a.keyId = b.keyId 
 go 
     update vw_temp  set info =N'sql教程博客' 
     where keyId =88
     ---运行以上sql脚本info值会被更新至响应的表tableName1中


注意事项:
1.视图更新数据的方式同cte表达式更新数据的方式类似
2.并不是所有的视图都可以执行更新操作

mssql sqlserver 使用cte表达式更新数据的方法分享


摘要:
下文讲述使用cte表达式的方式更新数据的方法,如下所示:
实验环境:sql server 2008 R2


cte表达式更新数据的思路为:
首先使用select查询语句将所需数据联接起来,并放入cte表达式中,
然后对cte表达式执行update操作,数据会更新至cte表达式所引用的表中,例:

  with cte_temp as 
   (
     select a.keyId,a.name,
              b.info  from tableName1 a 
                   left join tableName2 b on a.keyId = b.keyId 
    )
     update cte_temp set info =N'sql教程博客' 
     where keyId =88
     ---运行以上sql脚本info值会被更新至响应的表tableName1中

mssql sqlserver 从一张表更新数据至另一张表的方法分享


摘要:
下文讲述sqlserver中将一张表中的指定字段中的值更新至另外一张表的方法分享,如下所示:
实验环境:sqlserver 2008 R2


例:
有表testA、testB
当testB中keyId等于testA中的keyId时,将testB中的testBName更新至testA表中的testAName

  update testA 
  set testA.testAName = testB.testBName 
   from testB where  testA.keyId = testB.keyId