PDA

View Full Version : درج ساعت در نام فایل اسکریپت بکاپ گیری



battle69
چهارشنبه 11 آبان 1390, 20:06 عصر
سلام دوستان.
من اسکریپتی میخوام که بتونم با اون فقط از یک دیتابیسم بکاپ بگیرم و در نام فایل خروجی نام دیتابیس + تاریخ + ساعت بکاپ گیری درج بشه.
سرچ کردم هنوز به نتیجه ای نرسیدم.
مثلا :


DECLARE @name VARCHAR(50) -- database name
DECLARE @path VARCHAR(256) -- path for backup files
DECLARE @fileName VARCHAR(256) -- filename for backup
DECLARE @fileDate VARCHAR(20) -- used for file name

SET @path = 'C:\Backup\'

SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)

DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN ('master','model','msdb','tempdb')

OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name

WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName

FETCH NEXT FROM db_cursor INTO @name
END

CLOSE db_cursor
DEALLOCATE db_cursor

حالا اصراری به استفاده از این ندارم. چون این اسکریپت از کل دیتابیسم بکاپ میگیره و ساعت هم نداره.
دوستان لطفا راهنمایی کنند.
ممنون

battle69
جمعه 13 آبان 1390, 15:23 عصر
دوستان مشکلم حل شد

declare @currentDate datetime
set @currentDate = GetDate()

declare @fileName varchar(255)
set @fileName = 'C:\BKP\MyDatabase'
+ cast(Year(@currentDate) as varchar(4))
+ Replicate('0', 2 - Len(cast(Month(@currentDate) as varchar(2))))
+ cast(Month(@currentDate) as varchar(2))
+ Replicate('0', 2 - Len(cast(Day(@currentDate) as varchar(2))))
+ cast(Day(@currentDate) as varchar(2))
+ '_' +
+ Replicate('0', 2 - Len(cast(DatePart(hour, @currentDate) as varchar(2))))
+ cast(DatePart(hour, @currentDate) as varchar(2))
+ Replicate('0', 2 - Len(cast(DatePart(minute, @currentDate) as varchar(2))))
+ cast(DatePart(minute, @currentDate) as varchar(2)) + '.bak'

backup database [MyDatabase] to disk = @fileName with NOFORMAT, NOINIT,
name = N'MyDatabase-Full Database Backup',
SKIP, NOREWIND, NOUNLOAD, STATS = 10