我要尝试的操作如下: 每天我都会得到一个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中进行这项工作?