gpt4 book ai didi

超过 6 个月的 SQL Server DETACH 数据库

转载 作者:行者123 更新时间:2023-12-04 05:16:12 25 4
gpt4 key购买 nike

我可以像这样检索 6 个月前创建的数据库列表:-

-- all databases over 6 months old
select name, crdate
from sys.sysdatabases
where crdate <= DATEADD(month, -6, GETDATE())
AND name not in ('master','model','msdb','tempdb','distribution')

给出这样的结果:-
name        crdate
db1 2008-06-25 09:01:11.747
db2 2008-06-25 09:01:50.967

我可以像这样分离数据库:-
-- detach database
EXEC master.dbo.sp_detach_db @dbname = N'db1',
@keepfulltextindexfile = N'true'

我需要运行 sp_detach_db对于每个数据库,第一个查询返回。

这样做的最佳方法是什么?

最佳答案

您可以为任务使用游标:

declare cur cursor for
select name
from sys.sysdatabases
where crdate <= DATEADD(month, -6, GETDATE())
and name not in ('master','model','msdb','tempdb','distribution')

declare @name nvarchar(200)

open cur

fetch next from cur into @name

while @@FETCH_STATUS = 0
begin
EXEC master.dbo.sp_detach_db @dbname = @name, @keepfulltextindexfile = N'true'
fetch next from cur into @name
end

close cur
deallocate cur

关于超过 6 个月的 SQL Server DETACH 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14234039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com