我有30张字段相同的数据清单,但我想把它们一次性导入数据库,且合并成一张表。想问一下大家,是否有办法实现?
我的数据清单格式是txt,每张清单里的数据均为大容量数据,记录的是用户的消费行为。

解决方案 »

  1.   

    字段都一样吗?create table TB(col1 varchar(50),col2 varchar(50)......)
    declare @iSQL varchar(8000)
    set @iSQL=''
    Set @iSQL='bcp "DBname.dbo.TB" In "D:\filename.TXT" -c -S"192.0.0.16" -U"sa" -P"pwd"'
    EXEC master..xp_cmdshell @iSQLselect * from TB如果文件名有规则,写个循环就OK了
      

  2.   

    如果想用前台程序,那么读取文件 到dateset,再bulkcopy到数据库也行。
      

  3.   

    exec master..xp_cmdshell 'Bcp 库名.dbo.表名 in c:\目录名\文本名.txt -S 127.0.0.1 -U sa -P 密码 -t \t -c'
      

  4.   

    给你写了个循环,之间执行就可以了。
    create table bcpintxt(col varchar(200))
    create table datatable(col varchar(200)) --创建存放数据的表,根据自己的字段数据可以再添加declare @SQL varchar(8000),@file varchar(8000)
    insert into bcpintxt(col) exec master..xp_cmdshell 'dir c:\test\*.txt /b'  --注意这里修改存放文件的目录
    delete from bcpintxt where col is null
    declare fetch_id cursor for select col from bcpintxt order by col
    open fetch_id
    fetch fetch_id into @file
    while @@fetch_status=0
    begin
    Set @SQL='Bcp db_test.dbo.datatable in c:\test\'+@file+' -S 127.0.0.1 -U sa -P 123 -t \t -c'
    print @sql
    EXEC master..xp_cmdshell @sql
    fetch next from fetch_id into @file
    end
    close fetch_id
    deallocate fetch_iddrop table bcpintxt
      

  5.   

    如果文件名有规则,用bulk insert定义一个动态语句进行循环。如果没规则,请使用SSIS的Foreach循环,选择文件枚举器,数据流中使用平面文件源。
      

  6.   

    加个注释
    create table bcpintxt(col varchar(200))
    create table datatable(col varchar(200)) --创建存放数据的表,根据自己的字段数据可以再添加declare @SQL varchar(8000),@file varchar(8000)
    insert into bcpintxt(col) exec master..xp_cmdshell 'dir c:\test\*.txt /b'  --注意这里修改存放文件的目录
    delete from bcpintxt where col is null
    declare fetch_id cursor for select col from bcpintxt order by col
    open fetch_id
    fetch fetch_id into @file
    while @@fetch_status=0
    begin
        Set @SQL='Bcp 数据库名.dbo.datatable in c:\test\'+@file+' -S 127.0.0.1 -U sa -P sa的密码 -t \t -c' --注意这里修改数据库名称,用户名,密码,和存放文件的目录
        print @sql
        EXEC master..xp_cmdshell @sql
        fetch next from fetch_id into @file
    end
    close fetch_id
    deallocate fetch_iddrop table bcpintxt