Sql server 在存储过程中使用bcp实用程序将记录输出到文本文件
我一直在使用命令行中的bcp实用程序将查询结果保存到文本文件中,例如Sql server 在存储过程中使用bcp实用程序将记录输出到文本文件,sql-server,tsql,stored-procedures,bcp,Sql Server,Tsql,Stored Procedures,Bcp,我一直在使用命令行中的bcp实用程序将查询结果保存到文本文件中,例如 C:> bcp "SELECT Name FROM [DatabaseName].[dbo].[Employees]" queryout "filepath.txt" -c -T 我目前正试图从存储过程中找到执行此命令和类似bcp命令的方法 解决方案研究 已调查的xp_cmdshell存储过程(出于安全原因禁用) 使用SQL Server代理并使用作业步骤调用命令shell 尝试解决方案(下面的代码位于存储过
C:> bcp "SELECT Name FROM [DatabaseName].[dbo].[Employees]" queryout "filepath.txt" -c -T
我目前正试图从存储过程中找到执行此命令和类似bcp命令的方法
解决方案研究
- 已调查的xp_cmdshell存储过程(出于安全原因禁用)
- 使用SQL Server代理并使用作业步骤调用命令shell
提前感谢您的帮助和建议 工作完成了吗?作业日志是否显示任何错误?是否正在检查SQL Server上的路径?请尝试将路径完全限定为“c:\filepath.txt”,因为默认情况下,它将在运行该命令的进程的默认路径位置写入文本文件。
DECLARE @job NVARCHAR(100)
SET @job ='execute_bcp'
EXEC msdb..sp_add_job @job_name = @job,
@description = 'Execute bcp command',
@owner_login_name = 'sa',
@delete_level = 1
EXEC msdb..sp_add_jobstep @job_name = @job,
@step_id = 1,
@step_name ='Command Shell Execution', @subsystem = 'CMDEXEC',
@command = 'bcp "SELECT Name FROM [DatabaseName].[dbo].[Employees]" queryout "filepath.txt" -c -T',
@on_success_action =1
EXEC msdb..sp_add_jobserver @job_name =@job
EXEC msdb..sp_start_job @job_name = @job