gpt4 book ai didi

sql-server - 如何对生成的 SQL 脚本的输出进行排序?

转载 作者:行者123 更新时间:2023-12-02 18:44:24 25 4
gpt4 key购买 nike

我正在比较两个 SQL Server 数据库(开发环境和实际环境,分别为 SQL2005 和 SQL2008),以检查两者之间的差异。如果我为每个数据库生成一个脚本,我可以使用简单的文本比较来突出显示差异。

问题是脚本需要采用相同的顺序,以便于比较并避免存储过程的顺序不同但内容相同的简单差异。

所以如果我从开发中生成这个:

1: CREATE TABLE dbo.Table1 (ID INT NOT NULL, Name VARCHAR(100) NULL)
2: CREATE TABLE dbo.Table2 (ID INT NOT NULL, Name VARCHAR(100) NULL)
3: CREATE TABLE dbo.Table3 (ID INT NOT NULL, Name VARCHAR(100) NULL)

这是现场直播:

1: CREATE TABLE dbo.Table1 (ID INT NOT NULL, Name VARCHAR(100) NULL)
2: CREATE TABLE dbo.Table3 (ID INT NOT NULL, Name VARCHAR(100) NULL)
3: CREATE TABLE dbo.Table2 (ID INT NOT NULL, Name VARCHAR(100) NULL)

比较两个突出显示的第 2 行和第 3 行不同,但它们实际上是相同的,只是生成脚本向导在实时环境中先执行了表 3,然后执行了表 2。添加数百个表、存储过程、 View 等,这很快就会变得一团糟。

我当前的选择是:

  1. 比较前手动对内容进行排序
  2. 创建一个程序以按特定顺序创建脚本
  3. 找到一个对生成的脚本进行排序的免费软件应用程序
  4. 为作为其工具套件一部分执行此操作的产品付费
  5. (其他一些方法)

希望我只是缺少“按名称对脚本进行排序”的复选框,但我看不到任何执行此操作的内容。我觉得我不应该为像“排序输出”选项这样简单的东西或许多其他不需要的工具付费,所以选项 4 应该是最后的手段。

编辑我可以完全访问这两个环境,但实时环境被锁定并托管在虚拟服务器上,远程桌面是访问实时环境的典型方式。我的偏好是将我能复制的东西复制到开发中并在那里进行比较。我可以为数据库中每种类型的对象生成脚本作为单独的文件(表、SP、函数等)

最佳答案

根据您的 Visual Studio 2010 版本(如果有),您可以通过数据菜单轻松完成此操作,根据您的初衷,您可能会节省一些时间。

编辑:生成实际的数据库,然后比较架构比较工具(如下所示)与比较两个脚本文件的最终效果相同,您不必担心换行符等。

enter image description here

关于sql-server - 如何对生成的 SQL 脚本的输出进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7715194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com