我正在尝试通过批处理命令使用 sqlcmd.exe 检查数据库是否存在,并将根据结果做其他事情
I am trying to check if a database exists using sqlcmd.exe via batch command and will do other things based on the result
我正在编写一个批处理文件来检查数据库是否存在,并根据结果批处理将执行其他语句。
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
)
数据库名称的动态分配失败。 Returns "Sqlcmd: 'TestDB': Invalid argument. Enter '-?' for help."
如有任何解决问题的指示,我将不胜感激。
以下代码不仅检查数据库名称,还检查登录凭据和服务器名称。
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
我正在编写一个批处理文件来检查数据库是否存在,并根据结果批处理将执行其他语句。
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
)
数据库名称的动态分配失败。 Returns "Sqlcmd: 'TestDB': Invalid argument. Enter '-?' for help."
如有任何解决问题的指示,我将不胜感激。
以下代码不仅检查数据库名称,还检查登录凭据和服务器名称。
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