Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server DDL的批提取_Sql Server_Batch File_Ddl - Fatal编程技术网

Sql server SQL Server DDL的批提取

Sql server SQL Server DDL的批提取,sql-server,batch-file,ddl,Sql Server,Batch File,Ddl,由于我们可以在SSMS中点击以获得DDL,因此必须有GUI调用的某种程序集或DLL。有人熟悉如何利用这一点吗 实现这一点的动力来自于我们需要将DDL捕获为作业的一部分。我们的一些批处理只需要一个表甚至一个索引的数据,其他批处理可以使用整个数据库。根据需要获得细节是至关重要的。该细节可以用作过程的一部分,也可以放入文件中 我知道有多种解决方案可以解决在web上批量/自动检索SQL Server DDL(2000-2014版)的问题。没有一个是直接由微软支持的,而我需要的是,这是一个相当大的弱点 在

由于我们可以在SSMS中点击以获得DDL,因此必须有GUI调用的某种程序集或DLL。有人熟悉如何利用这一点吗

实现这一点的动力来自于我们需要将DDL捕获为作业的一部分。我们的一些批处理只需要一个表甚至一个索引的数据,其他批处理可以使用整个数据库。根据需要获得细节是至关重要的。该细节可以用作过程的一部分,也可以放入文件中

我知道有多种解决方案可以解决在web上批量/自动检索SQL Server DDL(2000-2014版)的问题。没有一个是直接由微软支持的,而我需要的是,这是一个相当大的弱点

在web上的项目中,有些使用脚本和系统视图/表来构建DDL。我很欣赏在这些方面所做的工作,但是这些东西可能会有问题,并且可能会从一个SQL Server版本转换到另一个SQL Server版本。此外,许多供应商都有工具,而且至少有一个开源项目(OpenDiff)涉足这一领域。但是,供应商工具不容易适应我的批处理流。第三方工具还需要安装在客户机系统上,客户机系统通常是一个敏感区域,并且通常有许可要求。当然,任何第三方工具都会引入各种类型的供应商依赖关系

我发现了一个项目,SMOScript,它使用SMOs(我只是稍微熟悉一点)。也许这与我想要的类似,尽管项目中有限的注释意味着它不允许像单个索引那样的细节。从管理的角度来看,它还引入了对该项目及其单个作者的依赖


SSMS使用的程序集,无论是什么,都必须由MS保持最新。如果调用它是可能的(尽管我确信希望它也很简单是愚蠢的),那么第三方依赖的弱点就消除了。因此,我不需要指向脚本和第三方工具的web链接(感谢您的想法),但如果有人能告诉我SSMS正在使用什么,这可能会有很大帮助。同时,为了它的价值,我将研究SMO。

我建议您更仔细地研究SMO。它有一个对象模型,允许编写和管理大部分SQL Server,并且完全受Microsoft支持。您看到这个问题了吗?-特别是第二个答案和对它的评论。