在 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 ×1