Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 BackUP DB (Incorrect syntax near)  [new]
Leo_163
Member

Откуда:
Сообщений: 13
Всем добрый день
использую SQL Server 2012
Помогите разобраться чайнику
Нашел вот такой код, по которому делаю задание для бэкапа баз

-- Open access master..xp_cmdshell
sp_configure 'show advanced options',1
reconfigure with override
go
sp_configure 'xp_cmdshell',1
reconfigure with override
go

declare
@strRAREXEDIRPATH varchar(512), -- Path Rar.exe
@strBACKUPRARPATH varchar(512), -- Backup rar path
@dt datetime,
@str_dt varchar(19),
@strCMD varchar(4000), -- Server name
@strPATHFILENAME varchar(500), -- Backup path
@strPATHFILENAME_old varchar(500), -- Backup path
@cmd varchar (1024) -- CMD command
-- Backup
set @dt = getdate()
set @str_dt = CONVERT(varchar(19), @dt, 120)
SET @str_dt = SUBSTRING(@str_dt,1,4)+'-'+SUBSTRING(@str_dt,6,2)+'-'+SUBSTRING(@str_dt,9,2)+'_04h00m'
set @strPATHFILENAME = '\\rusamsvrhyp02\SQL_BackUp\RUSAMSVRBDS02_1\App_Management\App_Management_8c865f46-7ea3-48c0-b278-7015c6e4c6c1_' + @str_dt + '.bak'
set @strCMD = 'Database backup at ' + @str_dt
set @str_dt = CONVERT(varchar(19), @dt-14, 120)
SET @str_dt = SUBSTRING(@str_dt,1,4)+'-'+SUBSTRING(@str_dt,6,2)+'-'+SUBSTRING(@str_dt,9,2)+'_04h00m'
set @strPATHFILENAME_old = '\\rusamsvrhyp02\SQL_BackUp\RUSAMSVRBDS02_1\App_Management\App_Management_8c865f46-7ea3-48c0-b278-7015c6e4c6c1_' + @str_dt + '.bak'


backup database App_Management_8c865f46-7ea3-48c0-b278-7015c6e4c6c1
to disk = @strPATHFILENAME
with FORMAT,COMPRESSION, name = @strCMD

-- Delete Backup
set @cmd = 'del "' + @strPATHFILENAME_old + '"';
exec master..xp_cmdshell @cmd,no_output;


несколько вопросов:
1) насколько этот код нормальный, возможно он мне и не подходит?
2) если этот код забиваю в Query, то бекап проходит без проблем, но с одним НО, при указании самой базы с "" т.е. "backup database App_Management_8c865f46-7ea3-48c0-b278-7015c6e4c6c1", без кавычек не делает, выдает след:

Configuration option 'show advanced options' changed from 1 to 1. Run the RECONFIGURE statement to install.
Configuration option 'xp_cmdshell' changed from 1 to 1. Run the RECONFIGURE statement to install.
Msg 102, Level 15, State 1, Line 22
Incorrect syntax near '-'.
Msg 319, Level 15, State 1, Line 24
Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.

создаю задание Job, ввожу код с "" и оба:

Message
Executed as user: NT SERVICE\SQLAgent$SHAREPOINT. Configuration option 'show advanced options' changed from 1 to 1. Run the RECONFIGURE statement to install. [SQLSTATE 01000] (Message 15457) Configuration option 'xp_cmdshell' changed from 1 to 1. Run the RECONFIGURE statement to install. [SQLSTATE 01000] (Message 15457) Incorrect syntax near 'App_Management_8c865f46-7ea3-48c0-b278-7015c6e4c6c1'. [SQLSTATE 42000] (Error 102) Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon. [SQLSTATE 42000] (Error 319). The step failed.

помогите разобраться, дайте дельный совет
27 май 16, 09:45    [19226541]     Ответить | Цитировать Сообщить модератору
 Re: BackUP DB (Incorrect syntax near)  [new]
СТУДЕНТ123
Member

Откуда:
Сообщений: 79
Нашел вот такой код -- Вам самому еще не страшно?

Если не понимаете листинг и сообщений об ошибках, воспользуйтесь функционалом SSMS, создайте свой план обслуживания. Вот тут вы точно будете знать, удовлетворяет план Ваших потребностей или нет.
27 май 16, 09:57    [19226580]     Ответить | Цитировать Сообщить модератору
 Re: BackUP DB (Incorrect syntax near)  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
Присоединяюсь. Если не понимаете смысла всех производимых действий и для чего и что нужно, то самый верный и правильный путь - это разобраться что вам нужно и оформить это в виде плана обслуживания в SSMS.
27 май 16, 10:00    [19226595]     Ответить | Цитировать Сообщить модератору
 Re: BackUP DB (Incorrect syntax near)  [new]
Leo_163
Member

Откуда:
Сообщений: 13
Ребят, спасибо большое за ответ, но можно все таки не тролить а помочь
27 май 16, 11:32    [19227126]     Ответить | Цитировать Сообщить модератору
 Re: BackUP DB (Incorrect syntax near)  [new]
СТУДЕНТ123
Member

Откуда:
Сообщений: 79
....
1) насколько этот код нормальный, возможно он мне и не подходит?

-- Как узнать что Вам нужно, разве это описано в Посте. Что именно Вы подразумеваете под термином "нормальный" код?

2) если этот код забиваю в Query, то бекап проходит без проблем, но с одним НО, при указании самой базы с ""

-- Разумеется, вы же не хотите читать документацию "exec master..xp_CMDshell @cmd,no_output;" xp_CMDshell
27 май 16, 11:44    [19227205]     Ответить | Цитировать Сообщить модератору
 Re: BackUP DB (Incorrect syntax near)  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
https://habrahabr.ru/post/270401/

относительно Вашей проблемы. Имя базы [App_Management_8c865f46-7ea3-48c0-b278-7015c6e4c6c1] квотироваться должно в конструкции BACKUP DATABASE.

И настоятельно рекомендую почитать про план обслуживания, который настраивается через SSMS.
27 май 16, 11:50    [19227238]     Ответить | Цитировать Сообщить модератору
 Re: BackUP DB (Incorrect syntax near)  [new]
Leo_163
Member

Откуда:
Сообщений: 13
AlanDenton,
Спасибо
27 май 16, 15:02    [19228377]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить