在SQL中找不到文件

时间:2018-11-23 15:10:41

标签: sql-server tsql batch-file xp-cmdshell

我要尝试的操作如下: 每天我都会得到一个CSV文件,最终需要通过批量插入将其导入SQL。 长期以来,这一切都很好用,但是最近,CSV文件中的一列包含需要在批量插入之前替换的文本。

经过一番搜索,我发现以下代码是一个BAT文件:

@echo off &setlocal
set "search=%1"
set "replace=%2"
set "textfile=Input.txt"
set "newfile=Output.txt"
(for /f "delims=" %%i in (%textfile%) do (
    set "line=%%i"
    setlocal enabledelayedexpansion
    set "line=!line:%search%=%replace%!"
    echo(!line!
    endlocal
))>"%newfile%"
del %textfile%
rename %newfile%  %textfile%

现在,当我将这个bat文件放在目录中并双击运行它时,效果很好。 但是现在的问题是我想将其集成到SQL存储过程中,我将其放在这样的过程中:

EXEC master..xp_CMDShell 'E:\FolderName\REPLACE.BAT'

当我尝试运行时,我在SQL中收到消息“找不到文件”。 既用于存储过程,又用于作为查询运行(在我自己的凭据下,即管理员权限)。 只是为了确保我也为SQL用户提供了对特定文件夹的完整权限,但这也无济于事。

如何在SQL Server中进行这项工作?

0 个答案:

没有答案