SQLSERVER,不使用BCP,把查询结果输出为txt文本文件的存储过程
由于有些服务器上,数据库由于服务器安全问题,禁用了cmd_shell 不能用BCP进行查询结果文本化输出。
所以特写了个存储过程。用于生成文本文件
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER PROCEDURE stp_ExportDataToTxt
/**//************************************************************************
* Powered by Tang Ren (R) *
* 2007-7-11 *
************************************************************************/
@sqlstr nvarchar(4000), --查询语句
@path nvarchar(1000), --文件保存文件夹
@fname nvarchar(250) --文件保存名字
as
--Define variable
declare @strPath varchar(300) --文件保存的地址
declare @colsCount int
declare @hr int
DECLARE @object int
DECLARE @src varchar(255), @desc varchar(255)
Declare @file int
declare @sql varchar(1000)
declare @tbname sysname
--Initialize variable
set @tbname = 'tb_' + convert(varchar(40),newid())
set @sql = replace(@sqlstr,'from','into ['+@tbname+'] from')
set @strPath = ''
print @sql
exec(@sql)
--Estimate the dir suffix, if it not end in '' then add it.
if right(@path,1)<>''
set @path=@path+''
set @strPath=@path+@fname
print @strPath
--Create FSO Object for file operation.
EXEC @hr = sp_OACreate 'Scripting.FileSystemObject', @object OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
RETURN
END
-- Create File ,if file exist then override it.
EXEC @hr = sp_OAMethod @object, 'CreateTextFile', @file OUTPUT , @strPath
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
set @sql ='select * from syscolumns where id=object_id('''+@tbname+''')'
print object_id(@tbname)
-- Create initial field name with each columns
declare @name varchar(1000)
declare @flag int
set @name=''
set @flag=0
declare cur_data CURSOR for
select name from syscolumns where id=object_id(@tbname)
open cur_data
fetch next from cur_data into @name
while @@fetch_status=0
begin
if @flag=1
exec sp_OAMethod @file,'Write',NULL,','
exec sp_OAMethod @file,'Write',NULL,@name
set @flag=1
fetch next from cur_data into @name
end
close cur_data
deallocate cur_data
EXEC @hr = sp_OAMethod @file, 'Close',NULL
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
set @sql = 'insert into openrowset(''microsoft.jet.oledb.4.0'',''text;hdr=no;database='+@path+''',''select * from['+@fname+']'')' +@sqlstr
print @sql
exec(@sql)
set @sql='drop table ['+@tbname+']'
print @sql
exec(@sql)
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
分享到:
相关推荐
sql server 中 BCP使用方法详解,快速从SQL SERVER中导入导出数据的命令
bcp是微软SQLServer数据库系统的命令行工具,用于进行大数据量的导入导出,该工具简单实用、效率极高,本文总结了bcp命令操作的各种设置开关功能含义和使用方法,可以为需要的用户提供有益帮助。
SQLServer 数据 导入导出 BCP详解。。。。。。。。。
在SQL Server里可以调用DOS下的命令行工具bcp来实现把表里的数据或者SQL语句结果生成文本文件。 BCP命令的参数格式: 代码如下: BCP {dbtable | query} {in | out | queryout | format} datafile [-m maxerrors] [-f...
sql server bcp 导入 到处 详细资料 参数
重要 将数据从 SQL Server 大容量复制到数据文件时,即使指定了 –V,bcp 实用工具也不会为任何 datetime 或 smalldatetime 数据生成 SQL Server 6.0 或 SQL Server 6.5 的日期格式。日期将始终以 ODBC 格式写入。...
sqlserver bcp导出到excel 测试可用
介绍就不多说了,下边是部分目录,觉得有用的话就顶一个 C:. │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整...
SQL Server 2008中最新的文件流功能使得你可以配制一个数据类型为varbinary(max)的列,以便将实际数据存储在文件系统中,而非在数据库中。只要愿意,你仍可以作为一个常规的二进制列来查询此列,即使数据自身存储...
4.3.1 使用SQL Server Management Studio查询 4.3.2 执行查询和改变设置 4.3.3 检查和设置配置参数 4.3.4 使用ALTER DATABASE改变设置 第Ⅱ部分 SQL Server 2008的系统管理 第5章 管理企业 5.1 使用SQL Server ...
bcp是sql用于进行大量数据传输/转换的工具。本文档主要针对其使用方法进行了详细的总结,并给出了实际例子,想信会为不了解bcp工具使用的读者以启示。
4.3.1 使用SQL Server Management Studio查询 4.3.2 执行查询和改变设置 4.3.3 检查和设置配置参数 4.3.4 使用ALTER DATABASE改变设置 第Ⅱ部分 SQL Server 2008的系统管理 第5章 管理企业 5.1 使用SQL Server ...
BCP - Microsoft SQL Server 的大容量复制程序。 版本: 15.0.2000.5
4.3.1 使用SQL Server Management Studio查询 4.3.2 执行查询和改变设置 4.3.3 检查和设置配置参数 4.3.4 使用ALTER DATABASE改变设置 第Ⅱ部分 SQL Server 2008的系统管理 第5章 管理企业 5.1 使用SQL Server ...
Bcp工具,这种工具虽然在SQL Server7的版本中不推荐使用,但许多数据库管理员仍很喜欢用它,尤其是用过SQL Server早期版本的人。Bcp有局限性,首先它的界面不是图形化的,其次它只是在SQL Server的表(视图)与文本...
BCP批量导入excel数据到sqlserver相关资料整理
7.2.4 使用SQL Server的系统存储过程处理分页 216 7.3 特殊要求的分页处理 217 7.3.1 随机显示的分页处理 217 7.3.2 分类数据的分页处理 221 第 8 章 树形数据处理 223 8.1 单编号处理法 223 ...
利用BCP导入导出数据库数据为TXT等文本数据
本客户端集合 基于 Sqlserver 2000 企业版 最新的 V8.0.2282 制作,绿色 便携 包含常用的客户端工具: bcp.exe isql.exe isqlw.exe osql.exe profiler.exe 已经集成了 VC7,VC++7运行库;且包含了Sqlserver ...