批量将数据库中的用户表导出到指定目录下的txt文件
2010-07-20 17:58
513 查看
----------------------------------------------------------------------------------
-- Author : htl258(Tony)
-- Date : 2010-06-26 11:55:48
-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
-- Jul 9 2008 14:43:34
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
-- Blog : http://blog.csdn.net/htl258
-- Subject: 批量将数据库中的用户表导出到指定目录下的txt文件
----------------------------------------------------------------------------------
IF OBJECT_ID('p_TbToTxt') > 0
DROP PROC p_TbToTxt
GO
CREATE PROC p_TbToTxt
@dbname SYSNAME,--库名
@path NVARCHAR(100) --导出路径
AS
SET NOCOUNT ON
--格式化路径
DECLARE @s VARCHAR(8000)
IF RIGHT(@path,1)<>'/' SET @path=@path+'/'
SET @path=REPLACE(@path,':',':')
--判断输入的盘符是否正确,不正确退出
DECLARE @t TABLE(a INT,b INT,c INT)
INSERT @t EXEC master..xp_fileexist @path
IF NOT EXISTS(SELECT 1 FROM @t WHERE c=1)
BEGIN
RAISERROR('输入的盘符不存在,请重新输入!',16,16)
RETURN
END
--判断是否存在输入路径,不存在创建
IF NOT EXISTS(SELECT 1 FROM @t WHERE b=1)
BEGIN
SET @s='md '+@path
EXEC master..xp_cmdshell @s,NO_OUTPUT
END
SET @s=NULL
--创建游标循环导出用户表
DECLARE c CURSOR FOR
SELECT 'EXEC master..xp_cmdshell ''BCP ['+@dbname+']..'+name+' OUT '+@path+name+'.txt -c -T'',NO_OUTPUT'
FROM sysobjects
WHERE TYPE='u'
OPEN c
FETCH c INTO @s
WHILE @@FETCH_STATUS=0
BEGIN
EXEC(@s)
FETCH c INTO @s
END
CLOSE c
DEALLOCATE c
SET NOCOUNT OFF
GO
--调用示例:
EXEC p_TbToTxt 'Mydb','D:/Txt'
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/htl258/archive/2010/06/26/5695659.aspx
-- Author : htl258(Tony)
-- Date : 2010-06-26 11:55:48
-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
-- Jul 9 2008 14:43:34
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
-- Blog : http://blog.csdn.net/htl258
-- Subject: 批量将数据库中的用户表导出到指定目录下的txt文件
----------------------------------------------------------------------------------
IF OBJECT_ID('p_TbToTxt') > 0
DROP PROC p_TbToTxt
GO
CREATE PROC p_TbToTxt
@dbname SYSNAME,--库名
@path NVARCHAR(100) --导出路径
AS
SET NOCOUNT ON
--格式化路径
DECLARE @s VARCHAR(8000)
IF RIGHT(@path,1)<>'/' SET @path=@path+'/'
SET @path=REPLACE(@path,':',':')
--判断输入的盘符是否正确,不正确退出
DECLARE @t TABLE(a INT,b INT,c INT)
INSERT @t EXEC master..xp_fileexist @path
IF NOT EXISTS(SELECT 1 FROM @t WHERE c=1)
BEGIN
RAISERROR('输入的盘符不存在,请重新输入!',16,16)
RETURN
END
--判断是否存在输入路径,不存在创建
IF NOT EXISTS(SELECT 1 FROM @t WHERE b=1)
BEGIN
SET @s='md '+@path
EXEC master..xp_cmdshell @s,NO_OUTPUT
END
SET @s=NULL
--创建游标循环导出用户表
DECLARE c CURSOR FOR
SELECT 'EXEC master..xp_cmdshell ''BCP ['+@dbname+']..'+name+' OUT '+@path+name+'.txt -c -T'',NO_OUTPUT'
FROM sysobjects
WHERE TYPE='u'
OPEN c
FETCH c INTO @s
WHILE @@FETCH_STATUS=0
BEGIN
EXEC(@s)
FETCH c INTO @s
END
CLOSE c
DEALLOCATE c
SET NOCOUNT OFF
GO
--调用示例:
EXEC p_TbToTxt 'Mydb','D:/Txt'
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/htl258/archive/2010/06/26/5695659.aspx
相关文章推荐
- 批量将数据库中的用户表导出到指定目录下的txt文件
- 将数据库内表中的数据导出到txt文档中,并且显示一个对话框,提示用户保存文件的位置
- 批量改名软件----Win7xfolder 的另一特色是可以批量导出文件的名字及其文件大小到 txt/CSV 文件,很方便
- php 获取目录下文件 批量改名 批量插入数据库
- 批量编译vb6文件并拷贝到指定目录
- c# 指定目录批量压缩文件
- j2ee的web项目文件导出原理,为了分析原理,以导出txt文件文件为例,分两种情况:1导出txt文件到服务器本地上2导出txt文件到个浏览器端(即导出给浏览器用户)
- Java中读取txt文本中内容+目录文件复制到指定目录
- scponly 限定用户不能SSH登录,可以SFTP SCP传文件到指定目录
- 现在我要写一个定时程序定时读取该目录下的所有txt文件到数据库,并把这些txt文件转移到另外一个目录
- 批量复制文件到指定目录并执行.bat文件(2012.06.06)
- python实现指定目录下批量文件的单词计数:并发版本
- 从数据库中把数据导出到txt文件(savefiledialog控件)
- Python解析Json,批量copy文件到指定目录脚本
- python实现指定目录下批量文件的单词计数:串行版本
- PHP简单实现生成txt文件到指定目录的方法
- 批量删除当前目录下所有文件夹中的指定文件
- 从数据库得到数据导出指定格式的xml文件,上传到NC接口,返回回执到本地一个xml文件(接上篇补充)
- SQL 数据的导入导出,对远程(MSsql,OracleAccess,)数据库的操作以及读取Excel,txt文件中的数据
- ASP.NET 网站 禁止未登录用户查看及下载指定目录下的文件