2014-02-19 2 views
0

На сервере SQL, как использовать строковую переменную? например, я хочу написать сценарий для автоматизации восстановления базы данных, но он жалуется на синтаксическую ошибку около «+».SQL-сервер, как использовать строковую переменную?

как исправить?

declare @source varchar(20) = 'Adventureworks2012'; 
declare @destination varchar(20) = 'Adventureworks2012_copy'; 

RESTORE DATABASE @source 
FROM DISK = @destination 
WITH REPLACE, 
MOVE @source+'_Data' TO 'C:\test\Adventureworks2012_20140301_Data.mdf' 
+1

Попробуйте как '@SouceStr VARCHAR (500) = @source + '_ Data'' и использовать сцепленный поле Source, т.е.' MOVE @SouceStr TO' C : \ Test \ Adventureworks2012_20140301_Data.mdf'' –

ответ

1

Попробуйте что-то вроде следующего:

DECLARE @Source varchar(50) = 'Adventureworks2012'; 
DECLARE @Destination varchar(50) = 'Adventureworks2012_copy'; 
DECLARE @SourceDB varchar(500) 
DECLARE @DestinationDB varchar(500) 


SET @SourceDB = @Source + '_Data' 
SET @DestinationDB = 'C:\test\Adventureworks2012_20140301_Data.mdf' 

RESTORE DATABASE @Source 
FROM DISK = @Destination 
WITH REPLACE, 
MOVE @SourceDB TO @DestinationDB 
Смежные вопросы