Username: Password:

单表导入/导出文本文档-数据库专栏,SQL Server
来源:作者: 发布时间:2007-12-26 01:57:41


/*--实现数据导入/导出的存储过程

 能够实现导入/导出 指定表 到文本文档
 支持自定义行/列分隔符

--邹建 2003.07--*/

/*--调用示例
导出调用示例
--导出指定表,这里指定导出表:地区资料
exec file2table zj,,,c:\zj.txt,xzkh_new..地区资料,@rowsplit=,

导入调用示例
--导入指定表,这里指定导入表:地区资料
exec file2table zj,,,c:\zj.txt,xzkh_sa..地区资料,0
--*/

if exists(select 1 from sysobjects where name=file2table and objectproperty(id,isprocedure)=1)
 drop procedure file2table
go

create procedure file2table
@servername varchar(200) --服务器名
,@username varchar(200)  --用户名,假如用nt验证方式,则为空
,@password varchar(200)  --密码
,@filename varchar(1000) --目录名+文档名
,@tbname varchar(500)= --数据库..表名
,@isout bit=1    --1为导出(默认),0为导入
,@fdsplit varchar(10)=\t --字段分隔符,默认为制表符
,@rowsplit varchar(10)=\n --记录分隔符,默认为回车符
as
declare @sql varchar(8000)

set @sql=bcp "+@tbname
 +case when @isout=1 then " out else " in end
 + "+@filename+" /c + /s"+@servername
 +case when isnull(@username,)= then
  else " /u"+@username end
 +" /p"+isnull(@password,)+"
 + /t"+@fdsplit+"
 + /r"+@rowsplit+"

exec master..xp_cmdshell @sql
go

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅