2017-08-03 106 views
2

我目前正在研究一个完整还原的SQL脚本,并且我有以下问题:恢复时必须决定数据库的mdf,ndf和ldf-文件的位置存储。为了达到这个目的,我使用了WITH MOVE。如果我自己插入路径,它工作得很好。通过SQL脚本恢复/错误'+'

当我开始使用字符串变量而不是实际路径(为了更容易使用)时,问题出现了。它说+附近有什么问题,但我无法弄清楚它是什么。所以我的问题是,它是什么?

RESTORE DATABASE Test_EMPI       --name of the database 
FROM DISK = @EMPIBackupFileLocation     --works just fine 
WITH MOVE '5_47_4403_Official_GER_EMPI' TO @RestoreFileLocation + '\' + @EMPIName + '1.mdf', --doesnt work 
MOVE 'MV_TABLES' TO 'C:\Program Files\....\DATA\Test_EMPI2.NDF', --also works 
........... 

执行我的剧本我得到的错误:Incorrect syntax near '+'.

回答

1

尝试这种方式

DECLARE @destination VARCHAR(1000) = @RestoreFileLocation + '\' + @EMPIName + '1.mdf' 

RESTORE DATABASE Test_EMPI --name of the database 
FROM DISK = @EMPIBackupFileLocation --works just fine 
WITH MOVE '5_47_4403_Official_GER_EMPI' TO @destination, 
MOVE 'MV_TABLES' TO 'C:\Program Files\....\DATA\Test_EMPI2.NDF', --also works 
+0

谢谢你的快速反应,是这样工作的! –