VBS 中的 SQLCMD
SQLCMD within a VBS
我正在尝试将一个部分写入通过 SQLCMD 附加数据库的脚本中。
如果我 运行 来自 CMD line/batch 文件,它会成功附加数据库:
sqlcmd -U sa -P RubbishPassword -S (local) -Q "sp_attach_db 'MyDBInstance','D:\AFolder\MyDB.mdf','D:\MyDBInstance\MyDB_log.ldf'"
但是,如果我通过执行以下操作在 VBS 中 运行 它不会出错,但不会附加数据库。
Set objShell = CreateObject("WScript.Shell")
objShell.Run "sqlcmd -U sa -P RubbishPassword -S (local) -Q ""sp_attach_db 'MyDBInstance','D:\AFolder\MyDB.mdf','D:\MyDBInstance\MyDB_log.ldf'"
关于为什么 and/or 是通过 VBS 传递 SQLCMD 的更好方法的任何想法?
您的命令中缺少 -Q
选项的尾随双引号。
objShell.Run "sqlcmd -U sa -P RubbishPassword -S (local) -Q
""sp_attach_db
'MyDBInstance','D:\AFolder\MyDB.mdf','D:\MyDBInstance\MyDB_log.ldf'""
"
尝试使用 wscript.echo 或像这样的 MsgBox 来调试您的命令:
Command = "sqlcmd -U sa -P *** -S (local) -Q "& DblQuote("sp_attach_db 'Aztec','D:\Aztecdata\Aztec.mdf','D:\Aztecdata\Aztec_log.ldf'")
wscript.echo Command
'***********************************************************************
Function DblQuote(Str)
DblQuote = Chr(34) & Str & Chr(34)
End Function
'***********************************************************************
我正在尝试将一个部分写入通过 SQLCMD 附加数据库的脚本中。
如果我 运行 来自 CMD line/batch 文件,它会成功附加数据库:
sqlcmd -U sa -P RubbishPassword -S (local) -Q "sp_attach_db 'MyDBInstance','D:\AFolder\MyDB.mdf','D:\MyDBInstance\MyDB_log.ldf'"
但是,如果我通过执行以下操作在 VBS 中 运行 它不会出错,但不会附加数据库。
Set objShell = CreateObject("WScript.Shell")
objShell.Run "sqlcmd -U sa -P RubbishPassword -S (local) -Q ""sp_attach_db 'MyDBInstance','D:\AFolder\MyDB.mdf','D:\MyDBInstance\MyDB_log.ldf'"
关于为什么 and/or 是通过 VBS 传递 SQLCMD 的更好方法的任何想法?
您的命令中缺少 -Q
选项的尾随双引号。
objShell.Run "sqlcmd -U sa -P RubbishPassword -S (local) -Q ""sp_attach_db 'MyDBInstance','D:\AFolder\MyDB.mdf','D:\MyDBInstance\MyDB_log.ldf'
""
"
尝试使用 wscript.echo 或像这样的 MsgBox 来调试您的命令:
Command = "sqlcmd -U sa -P *** -S (local) -Q "& DblQuote("sp_attach_db 'Aztec','D:\Aztecdata\Aztec.mdf','D:\Aztecdata\Aztec_log.ldf'")
wscript.echo Command
'***********************************************************************
Function DblQuote(Str)
DblQuote = Chr(34) & Str & Chr(34)
End Function
'***********************************************************************