Переименование префикса базы данных всегда должно быть в предыдущем месяце
Я использую SSMS 2012 и пытаюсь найти способ написать запрос, чтобы имя моей базы данных соответствовало второму или большинству текущего месяца.
У нас есть платежные базы данных за каждый месяц, которые идут как BillingMonth01206
а также BillingMonth022016
, а также один называется BillingMonthLM
для "прошлого месяца". База данных LM хороша тем, что нам не нужно постоянно менять базы данных для данных за прошлый месяц, но мне всегда нужна база данных до этого. Так как сейчас сентябрь, мне нужен июльский биллинг (BillingMonth072016).
Я делал поиск и замену каждый месяц, но есть ли способ автоматически настроить это? Может быть, используя строку или что-то?
1 ответ
Решение
DECLARE
@Month varchar(2)
,@Year varchar(4)
,@SQL varchar(max)
,@DataBaseName varchar(50)
SET @Month = CONVERT(varchar(2), DATEPART(MONTH, GETDATE()))
SET @Year = DATEPART(YEAR, GETDATE())
IF (LEN(@Month) = 1)
SET @Month = '0' + @Month
SET @DataBaseName = 'BillingMonth' + @Month + @Year
SET @SQL = 'ALTER DATABASE BillingMonth072016
Modify Name = ' + @DataBaseName + ''
EXEC (@SQL)