• 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 
  • 相关阅读:
    sql2005 如何重启数据库服务
    jQuery 树控件 zTree
    谈C#中的Delegate
    微博首席架构师杨卫华:新浪微博技术架构分析(转)
    jqGrid 各种参数 详解
    asp.net(c#)ref,out ,params的区别
    gcc
    数据结构递归
    跳表
    javajvm
  • 原文地址:https://www.cnblogs.com/luoyaoquan/p/2054136.html
Copyright © 2020-2023  润新知