从表对象脚本文件集合中自动确定依赖关系

时间:2011-02-14 16:26:36

标签: sql-server powershell

我有一个包含所有表对象脚本的文件夹/ Tables。这些表对象中的一些具有彼此之间的依赖性,因此需要按顺序执行脚本。现在,如果发生依赖性冲突,我们必须编辑我们的bat文件,并按所需顺序修复它。因为每天早上我们都推动使用OSQL cmd行开关将这些表推送到临时数据库服务器。有没有办法动态地自动化表对象脚本的顺序?

3 个答案:

答案 0 :(得分:2)

如果将表文件夹指定为脚本文件夹源数据库,则SQL Compare Pro可能会执行此操作。将其指向目标(可能是一个空数据库)并运行同步向导以依赖顺序生成脚本。

答案 1 :(得分:1)

从脚本文件中确定依赖关系非常困难。您必须解析所有内容并跟踪依赖关系。另一种方法是,如果每个文件只有一个对象(即一个表,视图等),则要跟踪哪些文件未成功执行,并循环遍历列表,直到它为空。根据您的依赖项的嵌套程度,您可能需要进行大量的传递,但很有可能列表会很快变短。

答案 2 :(得分:0)

发现另一种方法是使用Visual Studio 2010数据库项目。您可以将任何用户定义的脚本或具有多个脚本的文件夹导入Visual Studio 2010数据库项目。依赖关系由visual studio编译,可以对多个数据库进行部署。