导数据

从Erp库中把数据导入到 BanChe56 的库。 写一个存储过程。

CREATE proc [dbo].[Dev_MoveTableData]( @ToTable varchar(50), @FromTable varchar(50) , @useId bit , @IDFrom int ,@execute bit ) as begin

declare @sql nvarchar(4000);
declare @columns varchar(500);

if( @FromTable is null) set @FromTable = @ToTable;

set @sql = N‘select * from Erp.dbo.[‘ + @FromTable + ‘]‘ ;

exec sp_executesql @sql;

set @sql = ‘‘;

if( @useId = 1) begin
    set @sql = N‘
set identity_insert BanChe56.dbo.[$ToTable$] on
insert into BanChe56.dbo.[$ToTable$] ($AllColumns$)
select $AllColumns$ from Erp.dbo.[$FromTable$] where ID > $IDFrom$
set identity_insert BanChe56.dbo.[$ToTable$] off
‘ ;

    select @columns = ‘[‘ + dbo.JoinStr2(name, ‘],[‘) + ‘]‘ from sys.columns where object_id = object_id(@ToTable) and is_computed = 0 ;

    set @sql = REPLACE(@sql,‘$AllColumns$‘,@columns) ;

end else begin
    set @sql = N‘
insert into BanChe56.dbo.[$ToTable$] ($Columns$)
select $Columns$ from Erp.dbo.[$FromTable$] where ID > $IDFrom$
‘ ;

    select @columns = ‘[‘ + dbo.JoinStr2(name, ‘],[‘) + ‘]‘ from sys.columns where object_id = object_id(@ToTable)  and is_computed = 0 and is_identity = 0;

    set @sql = REPLACE(@sql,‘$Columns$‘,@columns) ;
end 

set @sql = replace(@sql,‘$FromTable$‘,@FromTable);
set @sql = replace(@sql,‘$ToTable$‘,@ToTable);
set @sql = replace(@sql,‘$IDFrom$‘, cast( @IDFrom as varchar(50)) );

    print @sql ;

    if( @execute =1 ) begin
        exec  sp_executesql @sql ;
    end ;

end ;
GO

检查有数据的表:

SELECT a.name FROM sys.sysobjects AS a
WHERE EXISTS(

SELECT 1 FROM sys.sysindexes AS x
 WHERE x.id=a.id  AND x.rows>0 )
 AND a.type=‘U‘

时间: 2024-10-29 19:10:35

导数据的相关文章

使用sqoop从mysql往hive中增量导数据shell脚本

一:sqoop增量导入的两种方式 Incremental import arguments: Argument Description --check-column (col) Specifies the column to be examined when determining which rows to import. (the column should not be of type CHAR/NCHAR/VARCHAR/VARNCHAR/ LONGVARCHAR/LONGNVARCHA

使用DBLINK导数据【ORA-39001 ORA-39200 ORA-02019】

在网上经常看到网友使用dblink导数据报错,报错大致如下: $ impdp system/system network_link=DB_LINK remap_schema=A:B schemas=A Import: Release 11.2.0.3.0 - Production on Tue Aug 14 14:07:52 2012 Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved. Con

利用DataTable快速批量导数据

DataSet ds = new DataSet();            using (SqlConnection conn = new SqlConnection(@"data source=.\sqlxu;initial catalog=NationalUnion20140717;persist security info=True;user id=sa;password=101;MultipleActiveResultSets=True"))            {    

oracle数据泵三步导数据

从A库用户ua导数据至B库用户ub 1.导出 expdp ua/[email protected]/orcl schemas=ua directory=DATA_PUMP_DIR dumpfile=ua.dmp logfile=ua.log schemas  要导出的方案列表,未指定时默认为当前登录用户方案 directory未指定时默认在DATA_PUMP_DIR,可通过select * from dba_directories查询 本机有安装oracle,可在cmd里直接执行,命令执行后dm

sqoop1.4.4从oracle导数据到hive中

sqoop从oracle定时增量导入数据到hive 感谢: http://blog.sina.com.cn/s/blog_3fe961ae01019a4l.htmlhttp://f.dataguru.cn/thread-94073-1-1.html sqoop.metastore.client.record.passwordhttp://blog.csdn.net/ryantotti/article/details/14226635 开启sqoop metastore step 1 创建sqoo

异构数据库之间完全可以用SQL语句导数据

告诉你一个最快的方法,用SQLServer连接DBF 在SQLServer中执行 SELECT * into bmk FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',  'Data Source="e:\share";User ID=Admin;Password=;Extended properties=dBase 5.0')...bmk 这样就可以把e:\share中的bmk.dbf表导入到Sqlserver中, 速度是最快的 把压箱底的

python学习笔记-day7-2-【python从mysql数据库导数据到excel,读excel,修改excel】

这节说下如何用python把数据库里的数据导出到excel里,并如何读取excel, 修必excel等操作. 一.用python把数据库里的数据导出到excel里 1.导入如下的模块,没有的话需要安装 import pymysql #mysql连接模块import xlwt #写excel的第三方库 从数据库导数据,写到excel文件里 import pymysql,xlwt def export_excel(table_name): import pymysql host, user, pas

C#使用SqlBulkCopy批量导数据

案例:将数据库数据导入到另一个库 ImportDataUtil: public class ImportDataUtil { const int PAGE_SIZE = 500; private SqlConnection _sourceConn = null; private SqlConnection _descConn = null; public ImportDataUtil(string sourceConnStr,string descConnStr) { _sourceConn =

批量数据文件用sqlldr导数据到oracle中

使用sqlload导文本数据到oracle中想必很多人多使用过,但是倘若有几百或者几千个数据文本,或者实时有文本数据产生.这种场景如何批量导入oracle呢,下面就来讲解下我处理的方式. 1.shell脚本LoadData.sh如下 #!/bin/bash data_dir=/home/bea/datasource/warn-log/dayflow  # 文本数据目录 data_dir_bak=/home/bea/datasource/warn-log/dayflow_bak shell_dir

MySQL导数据到Redis

比较快速的往redis中导入mysql数据的方法 1. 当向Redis中一次性导入大数据时 可以将所有的插入命令写到一个txt文件中,如插入 key-value SET test0 abc SET test1 bcd SET test3 abcd 每个SET命令前要留一个空格,保存为data.txt 然后使用 redis的客户端 redis-cli的管道传输(redis的版本要大于2.6) linux下使用命令:  cat data.txt | redis-cli --pipe 成功的话就会出现