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

时间:2016-09-12 12:26:46

标签: sql sql-server database ssms-2012

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

我们的每个月都有结算数据库,例如BillingMonth01206BillingMonth022016,以及一个名为BillingMonthLM的“上个月”。 LM数据库很好,因为我们不必经常更改上个月数据的数据库,但我总是需要之前的数据库。因此,现在是9月,我需要7月结算(BillingMonth072016)。

我每个月都在寻找并更换,但有没有办法自动配置?也许使用字符串或什么?

1 个答案:

答案 0 :(得分:0)

 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)