【发布时间】:2014-07-03 12:57:05
【问题描述】:
简而言之,我正在管理一堆版本化的 SQL 脚本,其中一个要求是它们需要向后兼容,因为相同的脚本可以多次执行,但仍保证最新版本的最终结果相同.基本上,假设我们使用的是版本 3。我们需要能够一遍又一遍地运行版本 1、2 和 3 的脚本,没有错误,并且仍然保证最终结果是相同的完整版本 3。
现在这在正常情况下很容易(只需检查列/表/类型是否正确,如果不正确则创建/修改),但是您如何处理例如长度超过 8000 个字符且不能作为动态 SQL 执行?随着版本 2 的安装,触发器被删除,最后,新的触发器被创建以匹配 v2 的数据模型。但是,如果 v3 删除了 v2 触发器引用的列之一,该触发器现在将失败。
我无法进行任何类型的 IF 检查来查看我们的日志是否有 v3 脚本,或者数据模型是否不符合要求。我讨厌让其他人做体力劳动来做一些我确信可以以一种或另一种方式自动化的事情。那么有什么好的噱头、技巧或只是我错过的东西可以提供帮助吗?
感谢您的帮助。 :)
【问题讨论】:
标签: sql sql-server sql-server-2008 triggers dynamic-sql