SQL Server如何利用bcp命令把SQL语句结果生成文本文件

58次阅读
没有评论

共计 1673 个字符,预计需要花费 5 分钟才能阅读完成。

本篇内容介绍了“SQL Server 如何利用 bcp 命令把 SQL 语句结果生成文本文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

在 SQL Server 里可以调用 DOS 下的命令行工具 bcp 来实现把表里的数据或者 SQL 语句结果生成文本文件。BCP 命令的参数格式: 复制代码 代码如下:
BCP {dbtable | query} {in | out | queryout | format} datafile [-m maxerrors] [-f formatfile] [-e errfile] [-F firstrow] [-L lastrow] [-b batchsize] [-n native type] [-c character type] [-w wide character type] [-N keep non-text native] [-V file format version] [-q quoted identifier] [-C code page specifier] [-t field terminator] [-r row terminator] [-i inputfile] [-o outfile] [-a packetsize] [-S server name] [-U username] [-P password] [-T trusted connection] [-v version] [-R regional enable] [-k keep null values] [-E keep identity values] [-h load hints]

但命令行下面的操作在传递变量上不太灵活,我参照 CSDN 里邹健写 File2Table 的例子,写了一个把 SQL 语句结果生成文本文件的系统存储过程 sp_sql_query_to_file.sql: 复制代码 代码如下:
/*************************************************************************** // 说明 : 根据 SQL 语句生成文本文件 (带日期戳,字段用逗号, 分隔) // SQL 语句里所有出现的表名要用 [数据库名].[用户名].[表名] 来详细标记 // 创建 : maggiefengyu 邮件 : maggiefengyu@tom.com 日期 :2006-03-03 ***************************************************************************/ create PROCEDURE sp_sql_query_to_file(@servername varchar(50), – 服务器名 @username varchar(50), – 用户名, 如果用 NT 验证方式, 则为空 @password varchar(50) , – 密码 @sql_query varchar(2000) , –SQL 查询语句, 有字符条件时用单引号 @filePath_name varchar(1000), – 导出路径和文件名 @date datetime – 保存文件时的生成日期戳 )AS DECLARE @sql varchar(8000) SET @sql= bcp +@sql_query + queryout + +@filePath_name+ _ + convert(varchar(12),@date,112)+ .txt /t , /w + /S +@servername +CASE WHEN ISNULL(@username,)= THEN ELSE /U +@username END + /P +ISNULL(@password,) select @sql EXEC master..xp_cmdshell @sql IF @@Error 0 BEGIN print 生成文件时出错了,请查看! +@@Error END GO

“SQL Server 如何利用 bcp 命令把 SQL 语句结果生成文本文件”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-01发表,共计1673字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)