batch-file - 我正在尝试通过批处理命令使用 sqlcmd.exe 检查数据库是否存在,并将根据结果执行其他操作

标签 batch-file sqlcmd

我正在编写一个批处理文件来检查数据库是否存在,并根据结果批处理将执行其他语句。

FOR /F "usebackq" %%S IN ( `sqlcmd.exe -S %server% -d master -U %username% -P !password! ^
    -Q "set nocount on; select count(*) from dbo.sysdatabases where [name]='$(inputDatabase)'" -v inputDatabase="%databaseName%"` ) DO (
 SET existsDB=%%S
 )
if !existsDB! EQU 1 (
    REM DO SOMETHING
) else (
    REM DO SOMETHING
)

动态分配数据库名称失败。返回“Sqlcmd:'TestDB':参数无效。输入'-?'寻求帮助。”

如果您能提供解决该问题的指示,我将不胜感激。

最佳答案

以下代码不仅检查数据库名称,还检查登录凭据和服务器名称。

SET _chk_DB=server
FOR /F "usebackq" %%S IN (`sqlcmd.exe -S %_svr% -d master -U %_usr%
-P %_psw% ^
-Q "set nocount on; select count(*) from dbo.sysdatabases where
[name]='%_dtb%'" `) DO (  
SET _chk_DB=%%S  
)
IF [%_chk_DB%]==[server] SET _returncode=1
IF [%_chk_DB%]==[login] SET _returncode=2
IF [%_chk_DB%]==[0] SET _returncode=4

关于batch-file - 我正在尝试通过批处理命令使用 sqlcmd.exe 检查数据库是否存在,并将根据结果执行其他操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28732472/

相关文章:

html - 批处理 : Fill array by text file with escaped characters

svn - Subversion 中的忽略文件从 svn :ignore property 中删除旧值

c# - 检测是否安装了 SQLCMD.exe 的正确方法?

batch-file - 如何在ffmpeg的批处理文件中编写注释?

visual-studio-2010 - 生成后的脚本返回错误级别255

mysql - 创建执行 mysql 存储过程的 windows 2000 批处理文件

sql - 在powershell中将参数传递给sql文件(sqlcmd)

mysql - 出现控制命令时的.BAT 文件代码

sql - 将 SQL 查询结果导出到 CSV

linux - 运行命令,然后通过SQLCMD添加结果