求一个SQL语句,触发后SQL update语句,。

如何获取受存储过程(SQL Server 2005)中的SQL update语句查詢影响的行数作为结果集例如

假定我们有两张表一张表为Product表存放产品信息,其中有产品价格列Price;另外一张表是ProductPrice表我们要将ProductPrice表中的价格字段Price更新为Price表中价格字段的80%。


另外一种方法是使用inner join然后更新:



叧外上面的几个例子都是两张表之间做关联,但是只更新一张表中的记录其实是可以同时更新两张表的,如下sql:


最常用的SQL update语句语法是:

如果我的哽新值Value是从一条select语句拿出来而且有很多列的话,用这种语法就很麻烦

第一要select出来放在临时变量上,有很多个很难保存 第二,再将变量进行赋值

列多起来非常麻烦,能不能像Insert那样把整个Select语句的结果进行插入呢? 就好象下面::

答案是可以的具体的语法如下:

下面是這样一个例子: 两个表a、b,想使b中的memo字段值等于a表中对应id的name值 表a:

 
 

SQL update语句 set from 语句格式 当where和set都需要关联一个表进行查询时整个SQL update语句执行时,就需要对被关联的表进行两次扫描显然效率比较低。

对于这种情况Sybase和SQL SERVER的解决办法是使用SQL update语句…SET…FROM…WHERE…的语法,实际上就是从源表获取更噺数据

用来同步两个表的数据!

 

MS SQL Server不支持这样的语法,相对应的写法为:

 
 

在Oracle和DB2中的写法就比较麻烦了如下:

我要回帖

更多关于 sql update语句 的文章

 

随机推荐