zoukankan      html  css  js  c++  java
  • MSSQL從文件導入數據

    alter procedure [dbo].[File2Table2] 
    @servername varchar(200)  --服务器名 
    ,@username varchar(200)   --用户名,如果用NT验证方式,则为空'' 
    ,@password varchar(200)   --密码 
    ,@tbname nvarchar(500)   --数据库.dbo.表名,如果不指定:.dbo.表名,则导出数据库的所有用户表 
    ,@filename nvarchar(1000)  --导入/导出路径/文件名,如果@tbname参数指明是导出整个数据库,则这个参数是文件存放路径,文件名自动用表名.txt 
    ,@isout bit      --1为导出,0为导入 
    as 
    declare @sql nvarchar(4000

    if @tbname like '%.%.%' --如果指定了表名,则直接导出单个表 
    begin 
     
    set @sql=N'BULK INSERT '+@tbname
     
    +N' FROM '''+@filename+''''
     
    +N'WITH
     ( 
       FIELDTERMINATOR = 
    ''|'',
       ROWTERMINATOR = 
    ''|\n''
     )
    '
     
    exec sp_executesql @sql
    end 
    else 
    begin --导出整个数据库,定义游标,取出所有的用户表 
     declare @m_tbname nvarchar(250
     
    if right(@filename,1)<>'\' set @filename=@filename+'\' 

     
    set @m_tbname='declare #tb cursor for select name from '+@tbname+'..sysobjects where xtype=''U''' 
     
    exec(@m_tbname
     
    open #tb 
     
    fetch next from #tb into @m_tbname 
     
    while @@fetch_status=0 
     
    begin 
      
    set @sql=N'BULK INSERT '+@m_tbname
      
    +N' FROM '''+@filename+@m_tbname+'.txt'''
      
    +N' WITH
      ( 
        FIELDTERMINATOR = 
    ''|'',
        ROWTERMINATOR = 
    ''|\n''
      )
    '
      
    print @sql
      
    exec sp_executesql @sql 
      
    fetch next from #tb into @m_tbname 
     
    end 
     
    close #tb 
     
    deallocate #tb  
    end 
  • 相关阅读:
    Hadoop系列:在Linux下部署hadoop 0.20.1
    EasyNet.Solr开发历程
    使用ios开发者证书
    多台电脑共用一个开发证书的方法
    ios学习第二天,类和属性
    ios开发第一天mvc介绍
    IOS的Bundle资源束制作
    ios证书申请,使用,调试,发布app
    paste命令
    shell的使用技巧
  • 原文地址:https://www.cnblogs.com/luoyaoquan/p/2054136.html
Copyright © 2011-2022 走看看