将数据库前缀重命名为始终是上个月
Renaming database prefix to always be previous month
我正在使用 SSMS 2012 并试图找到一种方法来编写查询,以便我的数据库名称将调整为倒数第二个月。
我们每个月都有计费数据库,如 BillingMonth01206
和 BillingMonth022016
,还有一个称为 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)
我正在使用 SSMS 2012 并试图找到一种方法来编写查询,以便我的数据库名称将调整为倒数第二个月。
我们每个月都有计费数据库,如 BillingMonth01206
和 BillingMonth022016
,还有一个称为 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)