【问题标题】:How to Backup and delete SQL Server database if the database created date is more than 3 months如果数据库创建日期超过 3 个月,如何备份和删除 SQL Server 数据库
【发布时间】:2017-09-29 06:34:35
【问题描述】:

如果数据库创建日期超过3个月,如何备份和删除SQL Server数据库

【问题讨论】:

标签: sql-server tsql database-backups


【解决方案1】:

小心使用这样的东西,这个脚本可能会给你带来麻烦。请注意,我只选择了@tsql 参数,我注释掉了 EXEC,以便您可以看到首先执行的内容。

/* Create a cursor to iterate through the databases you want to backup and delete */

DECLARE @tsql nvarchar(max)
DECLARE @dbname varchar(500)

DECLARE MyCursor CURSOR STATIC FORWARD_ONLY 
FOR
SELECT [name]
FROM sys.databases
WHERE create_date < DATEADD (M, -3, GETDATE())
AND [name] NOT IN ('master', 'model', 'msdb', 'tempdb')

OPEN MyCursor 

WHILE (1=1)   
BEGIN
DECLARE 
    @Date varchar(20) = GETDATE()

FETCH NEXT FROM MyCursor INTO @dbname  
IF @@FETCH_STATUS <> 0 BREAK 

SET @tsql = 'BACKUP DATABASE [' + @dbname + '] TO  DISK = N''S:\Backups\' + @dbname + ' ' + @Date + '.bak'' WITH NOFORMAT, NOINIT, SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10'
SELECT @tsql;
-- EXEC sp_executesql @tsql 
SET @tsql = 'ALTER DATABASE [' + @dbname + '] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DROP DATABASE [' + @dbname + ']'
SELECT @tsql
-- EXEC sp_executesql @tsql 

END   
CLOSE MyCursor;   
DEALLOCATE MyCursor;    
GO   

【讨论】:

  • 太棒了,非常感谢。
猜你喜欢
  • 2017-01-07
  • 2018-07-10
  • 2011-07-17
  • 2020-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-07
相关资源
最近更新 更多