Переименование префикса базы данных всегда должно быть в предыдущем месяце

Я использую 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)
Другие вопросы по тегам