数据同步存储过程

USE [TKPOS_WuJing]
GO
/****** Object: StoredProcedure [dbo].[sp_get_saleData] Script Date: 07/21/2014 11:20:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author: 陈新光
-- Create date: 2014-05-28
-- Description: 获取要上传的销售数据
/*
execute sp_get_saleData
*/
-- =============================================
/*
TSaleRecord = record // 销售数据
recNo: string[40]; // guid
shopid: string[40]; // 门店编号
shopname: string[40];
billId: string[40]; // 单据编号
saleDate: TDatetime; // 销售日期
goodsId: string[40]; // 商品编号
goodsName: string[40];
price: Currency; // 价格
qty: Single; // 数量
amount: Currency; // 金额
cookType: string[8]; // 班次
bigKindId: string[40]; // 大类编号
bigKindName: string[40];
smallKindId: string[40]; // 小类编号
smallKindName: string[40];
unitId: string[40]; // 计量单位编号
unitName: string[40];
vipId: string[40]; // 会员编号
vipName: string[40];
skyId: string[40]; // 收款员编号
skyName: string[40];
ywyId: string[40]; // 业务员编号
ywyName: string[40];
end;
*/
ALTER PROCEDURE [dbo].[sp_get_saleData]
[email protected] varchar(400) output -- 将要上传的销售单号列表
AS
BEGIN
set nocount on
-- 获取最近上传数据的时间戳
declare @dd datetime
select @dd=LastUpload from sys_upload where UploadType=‘SaleData‘
-- 将要上传哪些销售单
declare @billIds varchar(400)
declare @billId varchar(40)
DECLARE c1 CURSOR FOR
select top 5 SaleNo from Pos_Master where SaleDate>@dd -- 一次上传5笔
open c1
FETCH NEXT FROM c1 INTO @billId
WHILE @@FETCH_STATUS = 0
BEGIN
if @billIds is null begin
set @billIds=‘‘‘‘[email protected]+‘‘‘‘
end else begin
set @[email protected]+‘,‘+‘‘‘‘[email protected]+‘‘‘‘
end
FETCH NEXT FROM c1 INTO @billId
end
close c1
deallocate c1

declare @sql varchar(2000)
declare @time2 datetime
create table #tmp(
time2 datetime
)
set @sql=‘insert into #tmp select max(SaleDate) from Pos_Master where SaleNo in (‘[email protected]+‘)‘
exec(@sql)
select @time2=time2 from #tmp

-- 获取要上传的销售数据
set @sql=‘select b.SaleNo as billId,b.SaleDate,a.GoodsID,a.GoodsName,a.RetailPrice as price‘
+‘,a.Qty,a.Amount,dbo.f_GetCookType(b.saleDate) as cooktype‘
+‘,a.bigKindId,a.bigKindName,a.smallKindId,a.smallKindName‘
+‘,a.UnitCode as unitid,a.Unit as unitname,‘‘‘‘ as vipid,‘‘‘‘ as vipname,b.Employee as skyid‘
+‘,b.Createtor as skyname,‘‘‘‘ as ywyid,‘‘‘‘ as ywyname,‘+‘‘‘‘
+convert(varchar,@time2,21)+‘‘‘‘+‘ as time2‘
+‘ from pos_detail a‘
+‘ inner join Pos_Master b on a.SaleNo=b.SaleNo‘
+‘ where b.SaleNo in (‘[email protected]+‘)‘
exec (@sql)

drop table #tmp

set nocount off
END

数据同步存储过程

时间: 2024-08-07 09:40:30

数据同步存储过程的相关文章

自动生成数据同步存储过程的存储过程

最近几天都在搞数据库,特别是今天,因为需要,自己写了一个自动生成同步数据存储过程的存储过程...废话不多少,直接上代码: --开始 --create proc exec_copy --as --begin --因为同步的表是内网表,基本不做业务逻辑处理,所以所有的表都没有标示列,故我也就没做标示列的处理 set nocount on declare @tab_count int --存放用户表的数量 declare @col_count int --存放某个表中列的数量 declare @str

Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步

摘自:http://blog.csdn.net/javaee_sunny/article/details/53439980 目录(?)[-] Oracle 10g 物化视图语法如下 实例演示 主要步骤 在A节点创建原表和物化视图日志 在B节点创建连接A节点的远程链接 在B节点处创建目标表和与目标表名称相同的物化视图 在B节点处刷新物化视图 升级采用存储过程定时任务JOB方式定时刷新物化视图 进一步优化 文章更新记录 参考文章 Oracle 10g 物化视图语法如下: create materia

SQLServer与Oracle的数据同步(触发器trigger)

说到同步,其实是靠"作业"定时调度存储过程来操作数据,增,删,改,全在里面,结合触发器,游标来实现,关于作业调度,使用了5秒运行一次来实行"秒级作业",这样基本就算比较快的"同步" 做的是SQL Server往Oracle端同步,先在sql server上建立往Oracle端的链接服务器,我用一个视图"封装"了一下链接服务器下的一张表. create view v_ora_PUBLISHLASTREC as select *

ORACLE和SQL SERVER的数据同步常用方法

1. 自己编程,或者第三方工具2. 在sqlserver中,使用linkedserver,访问oracle,然后编写job进行数据同步3. 在oracle中,使用透明网关,访问sqlserver,进行数据同步4. sqlserver触发器和存储过程定时排程刷新机制5. 专门的ETL工具, SSIS/OWB/Data Stage/Power Center...

两台SQL Server数据同步解决方案

复制的概念 复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式.使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据.复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性. SQL复制的基本元素包括 出版服务器.订阅服务器.分发服务器.出版物.文章 SQL复制的工作原理 SQL SERVER 主要采用出版物.订阅的方式来处理复制.源数据所在的服务器是出版服务器,负责发表数据.

SQLServer2000数据同步复制技术方法

一. 预备工作1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户--管理工具--计算机管理--用户和组--右键用户--新建用户--建立一个隶属于administrator组的登陆windows的用户(SynUser)2.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:我的电脑--D: 新建一个目录,名为: PUB--右键这个新建的目录--属性--共享--选择"共享该文件夹"--通过"权限&qu

SQL Server 定时访问url激活数据同步

创建作业,执行以下命令 exec master..XP_cmdshell 'http://srm.rapoo.cn?op=sapintferace&i=1&t=1' 激活执行同步网步 以下内容来自网络,介绍如何启用  xp_cmdshell 扩展存储过程将命令 一.简介 xp_cmdshell 扩展存储过程将命令字符串作为操作系统命令 shell 执行,并以文本行的形式返回所有输出. 三.SQL Server 2005中的xp_cmdshell 由于存在安全隐患,所以在SQL Server

总结:基于Oracle Logminer数据同步

第 1 页 共 20 页 出自石山园主,博客地址:http://www.cnblogs.com/shishanyuan LogMiner 配置使用手册 1 Logminer 简介 1.1 LogMiner介绍 Oracle LogMiner 是 Oracle 公司从产品 8i 以后提供的一个实际非常有用的分析工具,使用该工具可以轻松获得 Oracle 在线/归档日志文件中的具体内容,特别是该工具可以分析出所有对于数据库操作的 DML 和 DDL 语句.该工具特别适用于调试.审计或者回退某个特定的

oracle数据表数据同步公用方法

自己写了个数据同步的方法,两个数据库之间的数据同步,自己可以通过调用存储过程,添加作业实现定时同步数据. CREATE OR REPLACE PROCEDURE Data_sync_Common(tableName in varchar2) is v_sql VARCHAR2(20000); --????SQL pk_col_name VARCHAR2(800); --主键SQL insert_col_name_A VARCHAR2(20000); --A表字段 insert_col_name_