SQL Server 修改数据库名的逻辑实现

 有一批数据库:

DBBI   --主要数据库用这个

DBBI_20211231

DBBI_20220101

.....

主要为了实现传一个日期参数进来,把带日期的数据库名变成DBBI,把DBBI变成带日期的DBBI_20211231

USE master; 

go

declare @date nvarchar(20)

set @date='2022-12-31'

 

set @date=REPLACE(@date,'-','')

 

declare @calcDate datetime

SELECT  @calcDate=CALCULATE_DATE FROM [DBBI].[dbo].[V_PROCESS_STATUS]

set @calcDate = DATEADD(DAY, 1, @calcDate)

--select REPLACE(CONVERT(VARCHAR(10), @calcDate, 120),'-','')

 

declare @sql nvarchar(300)

set @sql='ALTER DATABASE DBBI SET SINGLE_USER WITH ROLLBACK IMMEDIATE;'

 

set @sql+='ALTER DATABASE DBBI MODIFY NAME = DBBI_'+REPLACE(CONVERT(VARCHAR(10), @calcDate, 120),'-','')+';'

 

set @sql+='ALTER DATABASE DBBI_'+REPLACE(CONVERT(VARCHAR(10), @calcDate, 120),'-','')+' SET MULTI_USER;'

 

exec(@sql)

 

set @sql='ALTER DATABASE DBBI_'+@date+' SET SINGLE_USER WITH ROLLBACK IMMEDIATE;'

 

set @sql+='ALTER DATABASE DBBI_'+@date+' MODIFY NAME = DBBI;'

 

set @sql+='ALTER DATABASE DBBI SET MULTI_USER;'

 

exec(@sql)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值