0

データベースをバックアップする SQL スクリプトを実行するバッチ ファイルを作成しようとしています。

スクリプトは次のようになります。

USE $(DatabaseName);  
DECLARE     @DBName varchar(50), 
            @DateLabel  varchar(50), 
            @FileName   varchar(300), 
            @TodayDate  datetime, 
            @BackupPath varchar(200)

SET @DBName = $(DatabaseName);              
SET     @BackupPath = $(FolderPath) + '\';

バッチファイルはこれを出力します:

G:\Deployments>script_PFBC_ResourceFirstPortal.bat  
G:\Deployments>REM ECHO OFF  
G:\Deployments>SET outTime=10:41:12.46  
G:\Deployments>SET outTime=104112.46  
G:\Deployments>SET outTime=10411246  
G:\Deployments>SET outPath=PFBCdb_2013_22_01_10411246  
G:\Deployments>mkdir PFBCdb_2013_22_01_10411246  
G:\Deployments>cd PFBCdb_2013_22_01_10411246  
G:\Deployments\PFBCdb_2013_22_01_10411246>SET fullOutPath=G:\Deployments\PFBCdb_
2013_22_01_10411246  
G:\Deployments\PFBCdb_2013_22_01_10411246>CD..  
G:\Deployments>sqlcmd -i "backup.sql" -v DatabaseName=PFBC_ResourceFirstPortal FolderPath="G:\Deployments\PFBCdb_2013_22_01_10411246"  
Msg 102, Level 15, State 1, Server HDCVS-PFBC, Line 21
Incorrect syntax near 'G:'.

バッチ ファイルの最後の行は次のようになります。

sqlcmd -i "backup.sql" -v DatabaseName="PFBC_ResourceFirstPortal" FolderPath="%fullOutPath%"
4

1 に答える 1

0

エラー メッセージは、G: ドライブを参照しているという事実について不平を言っているようです。

代わりに、完全なサーバー パスを入力してみてください。これにより、バッチ ファイルと sqlcmd を扱う際の混乱が常に回避されます。

\\servername\folder1\folder2\Deployments\...
于 2013-01-22T16:05:48.653 に答える