我需要从生产数据库中恢复备份,然后自动重新应用 SQL 脚本(例如 ALTER TABLE、INSERT 等)以将该数据库模式恢复到正在开发的状态。
会有很多脚本,来自少数不同的开发人员。它们不会都在同一个目录中。
我目前的计划是在伪系统数据库的表中列出具有完整文件系统路径的脚本。然后在此数据库中创建一个存储过程,该过程将首先运行 RESTORE DATABASE,然后在脚本列表上运行光标,为每个脚本创建一个 SQLCMD 命令字符串,然后使用 xp_cmdshell 为每个脚本执行该 SQLCMD 字符串。
cursor->sqlstring->xp_cmdshell->sqlcmd 的顺序对我来说感觉很笨拙。此外,它需要打开 xp_cmdshell。
我不可能是唯一一个做过这种事情的人。有没有一种更简洁的方法来运行一组分散在服务器文件系统周围的脚本?特别是,不需要 xp_cmdshell 的方式?