powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Имя файла с датой по шаблону
32 сообщений из 32, показаны все 2 страниц
Имя файла с датой по шаблону
    #39794659
keepermode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Как в sql-запросе, например,
set @filename=N'C:\ backup_2019-04-01 14-53-05 .bak'
написать имя файла с датой по шаблону?
Как в батнике написал бы backup_* .bak
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39794662
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Команды sql-сервера не работают с шаблонами командной строки.
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39794667
keepermode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич, спасибо! Жаль, и вариантов не найти обозначить имя с любой датой?
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39794675
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
declare @filename nvarchar(100) = '';
set @filename=N'C:\backup_' + CONVERT(nvarchar(20), getdate(), 120) + '.bak';
print @filename;
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39794679
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
двоеточия реплейсом замените
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39794698
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
keepermodeДобрый день! Как в sql-запросе, например,
set @filename=N'C:\ backup_2019-04-01 14-53-05 .bak'
написать имя файла с датой по шаблону?
Как в батнике написал бы backup_* .bakНепонятен вопрос. Пишите как хотите, всё прекрасно сохранится в таблицах или в переменной.
Код: sql
1.
set @filename=N'C:\backup_*.bak' 
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39794713
keepermode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,
DECLARE @filename nvarchar(100) = '', @name nvarchar(4000);
set @filename=N'C:\backup_' + REPLACE(convert(nvarchar(20),GetDate(),120),':','-') + '.bak';
print @filename;

Результат:
C:\backup_2019-04-01 16-53-17.bak настоящее сиюминутное время запуска

Файл не найден.

А имя выгруженного бекап-файла C:\backup_2019-04-01 16-50-05.bak
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39794716
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не страдайте фигней -- возьмите имя файла из backuphistory. Или с диска прочитайте.
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39794717
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
keepermode,

вы свою полную задачу не озвучили, поэтому что-то вам советовать очень сложно. никто не понимает, какую проблему вы решаете и каким способом.
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39794728
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
keepermode
Результат:
C:\backup_2019-04-01 16-53-17.bak настоящее сиюминутное время запуска

Файл не найден.

А имя выгруженного бекап-файла C:\backup_2019-04-01 16-50-05.bak

в кавычках двойных нужно имя файла (или весь путь), если есть пробелы в названии
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39794729
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
keepermode Файл не найден. С чего должен быть найден файл, с именем, которое вы только что придумали (сгенерировали в коде программы)?
Что бы файл нашёлся, нужно указать его настоящее имя, а не генерить из текущей даты "по шаблону"
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795208
keepermode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One, Полная задача автоматизировать процесс бекапа базы и проверка выгруженного файла:

Первый шаг здания - бэкап базы в файл с датой-временем
Код: sql
1.
2.
set @filename=N'C:\backup_' + REPLACE(convert(nvarchar(20),GetDate(),120),':','-') + '.bak';
BACKUP DATABASE [db] TO  DISK = @filename



Второй шаг задания - проверка выгруженного бэкапа
Код: sql
1.
RESTORE VERIFYONLY FROM  DISK = @filename 



Если выгруженный файл с датой, то "файл не найден"
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795219
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
keepermodeKonst_One, Полная задача автоматизировать процесс бекапа базы и проверка выгруженного файла:

Первый шаг здания - бэкап базы в файл с датой-временем
Код: sql
1.
2.
set @filename=N'C:\backup_' + REPLACE(convert(nvarchar(20),GetDate(),120),':','-') + '.bak';
BACKUP DATABASE [db] TO  DISK = @filename




Второй шаг задания - проверка выгруженного бэкапа
Код: sql
1.
RESTORE VERIFYONLY FROM  DISK = @filename 




Если выгруженный файл с датой, то "файл не найден"У вас второй шаг даже не запустится, потому что переменные, объявленные в первом шаге, во втором не видны.
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795224
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробел у вас в имени файла, замените его подчёркиванием
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795225
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и да, шаги разные, как уже было сказано выше
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795226
keepermode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,
Код: sql
1.
set @filename=N'C:\backup_' + REPLACE(convert(nvarchar(20),GetDate(),120),':','-') + '.bak';


BACKUP DATABASE [db] TO DISK = @filename

Код: sql
1.
2.
set @filename=N'C:\backup_' + REPLACE(convert(nvarchar(20),GetDate(),120),':','-') + '.bak';
RESTORE VERIFYONLY FROM  DISK = @filename 



Как правильно объявить @filename, чтобы его проверить?
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795228
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
keepermode,

Если вы ответы не читаете, зачем вопросы задаете?
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795229
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делайте имя без времени , а только дату, тогда найдётся ваш файл
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795231
keepermode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One, как заменить? Это поможет?
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795235
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
keepermodealexeyvg,
Код: sql
1.
set @filename=N'C:\backup_' + REPLACE(convert(nvarchar(20),GetDate(),120),':','-') + '.bak';



BACKUP DATABASE [db] TO DISK = @filename

Код: sql
1.
2.
set @filename=N'C:\backup_' + REPLACE(convert(nvarchar(20),GetDate(),120),':','-') + '.bak';
RESTORE VERIFYONLY FROM  DISK = @filename 




Как правильно объявить @filename, чтобы его проверить?Вы в первом шаге формируете @filename, делаете бакап.

Потом во втором шаге формируете другой @filename, проверяете сделанный бакап.

Немудрено, что @filename в этих двух шагах могут быть разные.

Это принципиально неправильный подход.
Правильный - это использовать метаданные о сделанном бакапе, как вам написал Гавриленко Сергей Алексеевич, либо проверять бакап в первом шаге, не меняя @filename
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795237
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneделайте имя без времени , а только дату, тогда найдётся ваш файлСупер! А потом нужно будет сделать бакап за день 2 раза :-)

Прравильное решение совсем другое.
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795243
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если нужен только один бэкап в день, то тогда в самый раз. ТС так и не обозначил свою конечную задачу
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795268
Сруль.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я чой-то запутался, мужик.
Если ты бэкапы, типа ищешь...
Зачем проверять, если можно, просто, найти
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
use master
declare @db_name varchar(100)
set @db_name='dbnane'--заменить на имя вашей базы.
SELECT 
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server, 
msdb.dbo.backupset.database_name, 
msdb.dbo.backupset.backup_start_date, 
msdb.dbo.backupset.backup_finish_date, 
msdb.dbo.backupset.expiration_date, 
CASE msdb..backupset.type 
WHEN 'D' THEN 'Database' 
WHEN 'L' THEN 'Log' 
END AS backup_type, 
msdb.dbo.backupset.backup_size, 
msdb.dbo.backupmediafamily.logical_device_name, 
msdb.dbo.backupmediafamily.physical_device_name, 
msdb.dbo.backupset.name AS backupset_name, 
msdb.dbo.backupset.description 
FROM msdb.dbo.backupmediafamily 
INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id 
WHERE (CONVERT(datetime, msdb.dbo.backupset.backup_start_date, 102) >= GETDATE() - 7) 
and database_name=@db_name
and charindex('\',physical_device_name) >0
ORDER BY 
msdb.dbo.backupset.database_name, 
msdb.dbo.backupset.backup_finish_date DESC
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795285
keepermode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg, Да, для воскресных FULL и ежедневных DIFF подойдет
Код: sql
1.
convert(varchar(500),GetDate(),112)
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795294
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ухх... достаточно давно есть
Код: sql
1.
SELECT FORMAT(getdate(),'yyyy-MM-dd hh-mm-ss')
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795331
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneа если нужен только один бэкап в день, то тогда в самый раз. ТС так и не обозначил свою конечную задачуНезависимо от конечной задачи, так писать нельзя, так пишут "простокодеры".

Начальник, который поставил задачу, скажет, "запусти-ка бакап ещё раз", и что, нужно будет его послать, в позе "а вот в ТЗ было написано..."?

Тем более что написать правильно никакого лишнего труда не потребует.
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795333
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это всё верно, но задачу должны тогда ставить чётко и полд роспись =)
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795342
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneэто всё верно, но задачу должны тогда ставить чётко и полд роспись =)Угу, но виноват будет разрабюотчик, и совершенно правильно, не надо делать плохо даже под роспись, если от этого "плохо" нет каких то других профитов.
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795345
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneэто всё верно, но задачу должны тогда ставить чётко и полд роспись =)Под роспись, правда, есть преимущество - когда начальник формирует задание письменно, он не напишет явную глупость, в данном случае "создание более одной резервной копии в течении календарных суток запрещено" :-)
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795392
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgKonst_Oneэто всё верно, но задачу должны тогда ставить чётко и полд роспись =)Под роспись, правда, есть преимущество - когда начальник формирует задание письменно, он не напишет явную глупость, в данном случае "создание более одной резервной копии в течении календарных суток запрещено" :-)
ну запустят бекап еще раз - ничего страшного не случится - будет два бекапа в одном файле

ведь "with init" не используют судя по всему
Код: sql
1.
BACKUP DATABASE [db] TO  DISK = @filename
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795447
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komradalexeyvgПод роспись, правда, есть преимущество - когда начальник формирует задание письменно, он не напишет явную глупость, в данном случае "создание более одной резервной копии в течении календарных суток запрещено" :-)
ну запустят бекап еще раз - ничего страшного не случится - будет два бекапа в одном файле

ведь "with init" не используют судя по всемуДа, добавят второй бакап в файл, потом во втором шаге джоба проверят корректность первого бакапа в этом файле, старого.
Именно так и нужно делать настоящему япростокодеру :-)
...
Рейтинг: 0 / 0
Имя файла с датой по шаблону
    #39795460
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgkomradпропущено...

ну запустят бекап еще раз - ничего страшного не случится - будет два бекапа в одном файле

ведь "with init" не используют судя по всемуДа, добавят второй бакап в файл, потом во втором шаге джоба проверят корректность первого бакапа в этом файле, старого.
Именно так и нужно делать настоящему япростокодеру :-)

делать нужно так, как диктуют обстоятельства и требования к решению
техническая возможность пихать бекапы в один файл есть, надо лишь осознавать плюсы и минусы данного варианта
в общем, выбирать автору темы
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Имя файла с датой по шаблону
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]