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 
  • 相关阅读:
    windows 安装操作系统时切换分区表格式
    parted分区工具用法
    gitlab使用外部的postgresql、外部的redis服务器
    CDN、浏览器缓存
    python自动解析301、302重定向链接
    【WPF】FillRule
    【C#】WM 消息大全
    【转】【C#】SendMessage
    【转】【C#】【Thread】【Task】多线程
    【转】【C#】【Thread】【Parallel】并行计算
  • 原文地址:https://www.cnblogs.com/luoyaoquan/p/2054136.html
Copyright © 2011-2022 走看看