我们托管由另一个组提供的多个 SQL Server 2008 数据库。每隔一段时间,他们会提供其中一个数据库的新版本的备份,我们会执行删除旧数据库、恢复新数据库、然后进入新恢复的数据库并添加现有 SQL 登录的例程该数据库中的用户并为其分配所有这些数据库中都存在的标准角色。
该例程是相同的,只是每个数据库的数据和日志文件具有不同的名称以及不同的逻辑和操作系统名称。我的倾向是建立一个辅助数据库,其中包含一个定义与每个数据库关联的名称集的表,然后创建一个存储过程,接受要替换的数据库的名称和备份文件的名称作为参数。SP 会查找相关的逻辑和操作系统文件名,然后进行工作。
这需要将命令构建为字符串,然后执行它们,这很好。但是,存储过程在恢复数据库之后,必须先使用它,然后才能将 SQL 登录作为用户添加到数据库并将其分配给数据库角色。存储过程不能做到这一点。
有什么替代方法可以创建一个动态填充的自动化过程,并且可以像这样操作跨数据库?