加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLServer中用Sqlcmd 定时导出查询结果

发布时间:2020-12-12 13:34:56 所属栏目:MsSql教程 来源:网络整理
导读:需求:有一批数据需要每月初从SQLServer中定时将上个月符合条件的结果导出。 原理:利用Windows中用批处理和定时任务实现定时导出。 ? 步骤: 1.? ?用sqlcmd查询指定的sql语句,并把查询结果输出到本地文件。 2.? ?用xcopy 把查询结果拷贝到其它机器指定的目

@echo off

set /a v_last_month=%date:~4,2%-1

?

set v_year=%date:~10,4%

?

if %v_last_month%? leq? 9 (

set? v_outputfile=tblcalls%date:~10,4%0%v_last_month%.txt

)

?

if %v_last_month%? gtr? 9 (

set? v_outputfile=tblcalls%date:~10,4%%v_last_month%.txt

)

?

sqlcmd? -h -1 -W -s" "? -Q "SET NOCOUNT ON ; select? * from? test.dbo.volvo_last_month_call " > %v_outputfile%

?

?xcopy %v_outputfile%? 192.168.0.100mabfilesRECYCLER%v_year%tblcalls? ?/Q

?

把以上内容保存为bat文件,加到windows中的定时任务中即可实现定时导出SQLServer中的查询结果到文件中。

如果要导出的文件比较多,也可是尝试使用kettle工具和定时任务配合来实现导出。

?

sqlcmd 参数解释:

详见:http://technet.microsoft.com/zh-cn/library/ms162773(v=sql.105).aspx

?

-h headers

指定要在列标题之间输出的行数。默认为每一组查询结果输出一次标题。此选项设置 sqlcmd 脚本变量 SQLCMDHEADERS。使用 -1 指定不能输出标题。任何无效的值都将导致 sqlcmd 生成错误消息并随后退出。

?

-W remove trailing spaces

此选项删除列的尾随空格。在准备要导出到另一应用程序的数据时,请将此选项和 -s 选项一起使用。不能与 -y 或 -Y 选项一起使用。

?

-Q"cmdline query " and exit

在 sqlcmd 启动时执行查询,随后立即退出 sqlcmd。可以执行多个以分号分隔的查询。

?

当 SET NOCOUNT 为 ON 时,不返回计数(表示受Transact-SQL 语句影响的行数)。

当 SET NOCOUNT 为 OFF 时,返回计数

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

需求:有一批数据需要每月初从SQLServer中定时将上个月符合条件的结果导出。

原理:利用Windows中用批处理和定时任务实现定时导出。

?

步骤:

1.? ?用sqlcmd查询指定的sql语句,并把查询结果输出到本地文件。

2.? ?用xcopy 把查询结果拷贝到其它机器指定的目录下。

?

脚本如下:

    推荐文章
      热点阅读