将数据库前缀重命名为始终是上个月

Renaming database prefix to always be previous month

我正在使用 SSMS 2012 并试图找到一种方法来编写查询,以便我的数据库名称将调整为倒数第二个月。

我们每个月都有计费数据库,如 BillingMonth01206BillingMonth022016,还有一个称为 BillingMonthLM 的 "Last Month"。 LM 数据库很好,因为我们不必为上个月的数据不断更改数据库,但我总是需要之前的数据库。现在是 9 月,我需要 7 月的账单 (BillingMonth072016)。

我每个月都在做一次查找和替换,但是有没有办法自动配置这个?也许使用字符串或其他东西?

 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)