小编Kar*_*ren的帖子

遍历所有非系统数据库并清空它们

在 SQL Server 2012 上......我在用于培训目的的服务器上有多个数据库。这些需要定期清除以重新开始。当数据库数量很少时,我会使用 Adam Anderson 的代码删除所有对象并手动更改 USE 语句。现在有 200 多个数据库,我宁愿不要。希望自动化这个过程。我正在尝试使用 sp_MSforeachdb,但到目前为止还没有运气。有什么建议?提前致谢!

DECLARE @command nvarchar(max) 

SELECT @command ='IF EXISTS 
(
    SELECT 1
    FROM sys.databases
    WHERE name = ''?'' 
    AND name LIKE ''learndb%''        --we have learndb1, learndb2, etc...
)
BEGIN

DECLARE @stmt nvarchar(max)
DECLARE @n char(1)
SET @n = char(10)

select @stmt = isnull( @stmt + @n, '''' ) +
    ''drop procedure ['' + schema_name(schema_id) + ''].['' + name + '']''
from sys.procedures

select @stmt = isnull( @stmt + @n, …
Run Code Online (Sandbox Code Playgroud)

sql-server

3
推荐指数
2
解决办法
3589
查看次数

标签 统计

sql-server ×1