我正在尝试使用 sqlcmd 实用程序执行 4000+(约 140GB)脚本。
这样做的原因是从 SQL Server 2017 到 2008 的所有导出选项都因错误而失败,所以我决定使用 SSMS 中的“生成脚本”编写整个数据库的脚本,然后通过批处理文件执行所有生成的脚本并记录每一个错误,所以我可以查明每个脚本中的问题是(或不是)。
到目前为止,我设法确定 2008 并不真正喜欢某些表中的日期格式,这很奇怪,因为说 DB 在今年早些时候从 SQL SRV 2008 导出到 2017。
不管怎样,我写的 bach 脚本是这样的:
for %%G in (*.sql) do (
if not %errorlevel% == 0 echo %errorlevel% >> errorlog.txt 2>&1
if %errorlevel% == 0 sqlcmd /S SQLINSTANCE /d DBNAME -E -i"%%G"
)
pause
该脚本正确执行(一次插入 1 行),但创建和附加“errorlog.txt”除外 - 该文件甚至没有在进程中创建,当我尝试手动创建它时,没有任何内容附加到该文件. 当我尝试在第 4 行创建“successlog.txt”时,该文件已正确创建并附加。
请问有人对我现在可以采取的步骤有任何指导吗?