У меня возникла проблема с правильной работой моего сценария резервного копирования/сжатия.Ошибка SQL Server Backup and Shrink Script
Я получаю сообщение об ошибке
Msg 102, Level 15, State 1, Line 12
Неправильный синтаксис около 'CONCAT'.Msg 102, Level 15, State 1, Line 15
Неправильный синтаксис около «CONCAT'.`
Ошибка каждый раз, когда я пытаюсь запустить его.
Вы можете помочь?
Declare @dbname VarChar(250);
Declare @logfile VarChar(1000);
Declare @baklocation VarChar(1000) = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\BACKUP\';
Select @dbname = name From sys.databases Where name Not In ('master', 'tempdb', 'model', 'msdb');
While @@rowcount <> 0
Begin
Alter DATABASE [@dbname] Set RECOVERY SIMPLE With NO_WAIT;
Backup Database @dbname
TO DISK = CONCAT(@baklocation, @dbname, '\', @dbname, '_', Convert(Varchar(500),GetDate(),112), '.bak');
Backup Log @dbname
TO DISK = CONCAT(@baklocation, @dbname, '\', @dbname, '_', Convert(Varchar(500),GetDate(),112), '.log.bak');
End;
SELECT @logfile = filename FROM SYSALTFILES Where groupid = 0 AND dbid > 4;
While @@rowcount <> 0
Begin
DBCC SHRINKFILE(@logfile, 1);
End;
' CONCAT' является ** новой функцией ** в SQL Server ** 2012 ** - это ** не ** доступно в более ранних версиях, поэтому, если это выполняется против SQL Server 2008, очевидно, что вы получите ошибки .... –