2015-10-03 2 views
1

Я пытаюсь написать раздел в скрипт, который прикрепляет БД через SQLCMD.SQLCMD в VBS

Если я запускаю это из строки/пакетного файла CMD он присоединяет DB успешно:

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'" 

Любые идеи о том, почему и/или лучший способ передачи SQLCMD через VBS?

ответ

0

В вашей команде отсутствует уступка двойных кавычек для -Q.

objShell.Run «SQLCMD -U са -P RubbishPassword -S (местное) -Q "" sp_attach_db 'MyDBInstance', 'D: \ AFolder \ Mydb.mdf', 'D: \ MyDBInstance \ MyDB_log.ldf»"""

2

Try отлаживать вашу команду с 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 
'*********************************************************************** 
Смежные вопросы