MS sql server和mysql中update多条数据的例子
2008-12-05 12:00
495 查看
1.
MS sql server中使用动态的表名:declare @tableName nvarchar(160)
set @tableName = 't_stat_all'
declare @sql nvarchar(160)
print @tableName
set @sql='select count(*) from '+@tableName
exec(@sql)
2.mysql的例子1
语句update (select sc,tos,sum(click) as click,product,adpid from log_sc_click group by sc,tos,product,adpid) as a,
t_stat_sc_h_tmp as b
set b.sc_click=a.click
where b.stat_date=str_date and b.hour=str_hour and b.sc=a.sc
and b.tos=a.tos and b.product=a.product and a.adpid=b.adpid;
3.mysql例子2
update t_advertiser as a,
(select uid,sum(amount) as amount from t_trade where status='1' and type='4' group by uid)as b
set a.spend=(b.amount) ,a.balance=(a.totalAmount-b.amount) #注意是逗号不是and
where a.id=b.uid;
4.
SQL server存储过程完整例子
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
--ALTER procedure [dbo].[ad_stat]
ALTER procedure [dbo].[ad_stat]
@day varchar(20) = null
as
BEGIN try
if(@day is null)
set @day = convert(varchar(10),dateadd(day,-1,getdate()),121)
declare @theDay datetime
set @theDay = cast(@day as datetime)
declare @yesterday varchar(10)
set @yesterday = convert(varchar(10),@theDay,121)
declare @tableName nvarchar(160)
set @tableName = 'log_adlist_'+ left(@yesterday,4)+'_'+substring(@yesterday,6,2)+'_'+substring(@yesterday,9,2)
declare @sql nvarchar(500)
set @sql=' update t_stat_all '+
' set cl=b.click from '+
' ( '+
' select AllType as ad_id ,posid as posid,count(*) as click '+
' from '+@tableName+
' where datediff(d,VisitTime,'+@theDay+')=0'+
' group by AllType,posid '+
' ) b ,t_stat_all a '+
' where datediff(d,a.stat_date,'+@theDay+')=0 and a.posid=b.posid '+
' and a.ad_id=b.ad_id ';
exec(@sql)
END try
begin catch
INSERT INTO actionLogs
([createTime]
,[actionName]
,[type]
,[infor])
VALUES
(getdate(),
'ad_stat',
'error', --error,info
ERROR_MESSAGE())
end catch
MS sql server中使用动态的表名:declare @tableName nvarchar(160)
set @tableName = 't_stat_all'
declare @sql nvarchar(160)
print @tableName
set @sql='select count(*) from '+@tableName
exec(@sql)
2.mysql的例子1
语句update (select sc,tos,sum(click) as click,product,adpid from log_sc_click group by sc,tos,product,adpid) as a,
t_stat_sc_h_tmp as b
set b.sc_click=a.click
where b.stat_date=str_date and b.hour=str_hour and b.sc=a.sc
and b.tos=a.tos and b.product=a.product and a.adpid=b.adpid;
3.mysql例子2
update t_advertiser as a,
(select uid,sum(amount) as amount from t_trade where status='1' and type='4' group by uid)as b
set a.spend=(b.amount) ,a.balance=(a.totalAmount-b.amount) #注意是逗号不是and
where a.id=b.uid;
4.
SQL server存储过程完整例子
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
--ALTER procedure [dbo].[ad_stat]
ALTER procedure [dbo].[ad_stat]
@day varchar(20) = null
as
BEGIN try
if(@day is null)
set @day = convert(varchar(10),dateadd(day,-1,getdate()),121)
declare @theDay datetime
set @theDay = cast(@day as datetime)
declare @yesterday varchar(10)
set @yesterday = convert(varchar(10),@theDay,121)
declare @tableName nvarchar(160)
set @tableName = 'log_adlist_'+ left(@yesterday,4)+'_'+substring(@yesterday,6,2)+'_'+substring(@yesterday,9,2)
declare @sql nvarchar(500)
set @sql=' update t_stat_all '+
' set cl=b.click from '+
' ( '+
' select AllType as ad_id ,posid as posid,count(*) as click '+
' from '+@tableName+
' where datediff(d,VisitTime,'+@theDay+')=0'+
' group by AllType,posid '+
' ) b ,t_stat_all a '+
' where datediff(d,a.stat_date,'+@theDay+')=0 and a.posid=b.posid '+
' and a.ad_id=b.ad_id ';
exec(@sql)
END try
begin catch
INSERT INTO actionLogs
([createTime]
,[actionName]
,[type]
,[infor])
VALUES
(getdate(),
'ad_stat',
'error', --error,info
ERROR_MESSAGE())
end catch
相关文章推荐
- MS sql server和MYsql中update多条数据的例子
- 将mysql数据导入到MS Sql Server中
- 将mysql数据导入到MS Sql Server中
- 将mysql数据导入到MS Sql Server中
- 将mysql数据导入到MS Sql Server中
- Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例
- mysql 如何用一条SQL将一张表里的数据插入到另一张表 3个例子
- MS SQL Server 2005数据导入SQL语句
- MS Sql Server中update()函数的作用?
- MySQL 5.5 m2 VS MS Sql Server 2000 SE BenchMark
- MS SQL server 2005中查询某张表从30-40条数据,但主键ID不是连续的
- ibatis中主键自动增长(Oracle,Ms sql server ,mysql)
- 《MS SQL Server 2000管理员手册》系列——10. 建立数据库数据表
- MySql update inner join!MySql跨表更新 多表update sql语句?如何将select出来的部分数据update到另一个表里面?
- JSP中使用JDBC驱动访问MS SQL SERVER数据库的例子
- MS SQL Server树型结构数据显示的SQL语句(纯SQL语句,不用函数)
- MS SQLSERVER实时增量DML和DDL数据捕获
- MS SQL Server和MySQL区别
- 在sqlserver中如何对text类型的数据进行replace操作。 MS-SQL Server / 基础类 - CSDN社区 community.csdn.net
- 关于MS SQL Server中DATETIME类型数据的处理