gpt4 book ai didi

sql - 需要帮助编写在(sql server 2008 和另外 3 个文件中执行 sql 脚本)的 bat 文件。?

转载 作者:行者123 更新时间:2023-12-02 16:33:16 24 4
gpt4 key购买 nike

我确信之前已经有人问过这些问题,但找不到明确的说明如何创建批处理文件让我们称之为“更新数据库”这个批处理文件应该

执行位于不同文件夹中的sql脚本执行另外3个bat文件。

有如何做的快速示例吗?以前从未做过非常感谢

已编辑

我可以这样做吗?

:On Error exit 

:r C:\myPath\MasterUpdateDatabase.bat
GO
SQLCMD -S (Local) -i C:\myPath\InsertUsername.sql

我收到错误:

"GO" is not recognized as internal external command

感谢您的任何意见

最佳答案

您似乎正在尝试使用 DOS 命令创建一个批处理文件,该文件要么 (a) 执行其他批处理文件,要么 (b) 执行 SQLCMD 来运行 sql 或 sql 脚本。

这里有几个示例,全部合二为一。我使用带有 /WAIT 开关的 DOS 命令 START,这将使您的原始“主”批处理文件在一个窗口中运行,并在其中执行后续文件或命令一个新窗口。该新窗口将保持打开状态,直到脚本完成并退出。

某些 ECHO 可能不是必需的,但脚本现在会与您进行一些对话。

@echo off

所以,这非常简单,因为您只是运行脚本。如果 script1.bat 有断点,您可以将错误返回到主脚本并立即结束。我不清楚这是否是您需要主脚本执行的操作。

echo Starting Database Update.
echo.

echo Excuting Script 1
echo.
start /wait C:\path\to\your\script1.bat

echo If there was a problem, break here.
Pause

echo Excuting Script 2
echo.
start /wait C:\path\to\your\script2.bat

echo If there was a problem, break here.
Pause

这里使用相同的 START/WAIT 来运行 SQLCMD,在本例中仅返回查询结果。这里需要注意的一件事是 -Q (大写)运行查询并退出。如果您使用 -q (小写),它将运行查询并在 SQLCMD 中打开等待另一个查询。

echo.
echo Running SQLCMD: "select top 100 * from sys.objects"
start /wait sqlcmd -S (local) -Q "select top 100 * from sys.objects"

这就是运行 sql 脚本的方式,这就是 -i 所表示的,但我也没有像之前那样在 START/WAIT 中运行它。并不是说你必须这样做,但我想展示这两个例子。这还表明,如果您的脚本返回错误,-b 将结束批处理过程,如果您运行多个依赖于前者成功的脚本,这将非常有用。

echo.
echo Running SQLCMD from an (-i)nput file:
sqlcmd -S (local) -i C:\path\to\your\script.sql -b

echo.
echo Update Complete.
pause

End

所以,我假设您正在寻找使用 SQLCMD 的 .bat 或 .cmd 文件。我提供的示例非常基本,但希望它能让您走上正确的道路。

哦!请记住,CTRL+C 会中断正在处理的批处理脚本。

关于sql - 需要帮助编写在(sql server 2008 和另外 3 个文件中执行 sql 脚本)的 bat 文件。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3794897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com