我正在使用SSMS 2012并尝试找出一种编写查询的方法,以便我的数据库名称将调整到当前的第二个月。
我们的每个月都有结算数据库,例如BillingMonth01206
和BillingMonth022016
,以及一个名为BillingMonthLM
的“上个月”。 LM数据库很好,因为我们不必经常更改上个月数据的数据库,但我总是需要之前的数据库。因此,现在是9月,我需要7月结算(BillingMonth072016)。
我每个月都在寻找并更换,但有没有办法自动配置?也许使用字符串或什么?
答案 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)