当前位置: 首页 > 面试题库 >

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

白刚洁
2023-03-14
问题内容

我确定这些问题以前曾被询问过,但找不到明确的说明如何创建批处理文件,因此应将其称为“ Update Database”,此批处理文件应

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

任何快速示例如何做到这一点?

我可以这样做吗?

:On Error exit

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

我收到一个错误:

“ GO”未被识别为内部外部命令

感谢您的任何投入


问题答案:

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

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

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的地方,在这种情况下,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会中断正在处理的批处理脚本。



 类似资料:
  • 编写一个查询以显示staffid、费用代码、专科id、专科名称、会诊日期、患者号和到期日将使用会诊日期+21计算 STAFFID NOT NULL CHAR(2) FIRSTNAME VARCHAR2(20) LASTNAME VARCHAR2(20) 角色VARCHAR2(15) 性别CHAR(1) 日期连接日期 DATELEFT DATE SQL>描述staffspeciality错误: OR

  • 问题内容: 我试图使我的python脚本非常用户友好,因此我想为其提供某种帮助。您对此有何建议?我可以提出一些逻辑,即如果用户将帮助作为脚本的参数传递给他们,他们将获得帮助。是否有最佳实践或惯例? 问题答案: 使用argparse。 例如,使用 test.py : 跑步 产量

  • 问题内容: 例如,我有一个名为的文件。其内容是: 所以在这里我想为每个人添加图片链接 如何编写脚本以将密钥添加到每个人并添加person.name.lowercase +“ .png”作为值? 在此过程结束时,将对people.json进行编辑并将其保存到硬件中,而不是内存中。 非常感谢你。 问题答案: 这是一个完整的程序,使用JavaScript(使用node.js),可以完成所需的工作: 作为

  • 问题内容: 怀疑在VBA ADO和Sql查询中… 我有2张纸,即adodc1,adodc2(在一本工作簿中) 在adodc1中具有“名称”,“部门”列,有时其具有“ Sect”列 在adodc2中具有“名称”,“部门”,“宗派”列 我想要的是当我运行Query..Vba时需要检查adodc1是否具有Sect列。 要返回为空值.. 下面的代码取自“”,根据我的需要进行了更改 它将执行的工作是来自两张

  • 我想使用SQL脚本文件在Kubernetes pod中创建一个SQL Server数据库。我有创建数据库和插入主数据的SQL脚本。由于我是Kubernetes的新手,我很难在pod中运行SQL脚本。我知道SQL脚本可以在单独的kubectl exec命令中手动执行,但是我希望它在pod deploy yml文件本身中自动执行。 有没有办法将脚本文件挂载到pod的卷中,并在启动容器后运行它?

  • 我需要在我的windows机器到UNIX服务器之间建立一个隧道,并希望自动化这个过程,以便在启动时为我生成隧道。 我用ssh和autossh安装了Cygwin,以连接到远程服务器,手动建立连接,并确认连接正常工作。这个过程涉及3个命令,这并不是很多,但这将是伟大的自动化。 包括。exe文件在内的第一部分用于打开Cygwin窗口,但我没有成功地将脚本输入其中。我甚至尝试在引用脚本文件之前包含一个--