2012-03-13 60 views
1

如何在没有第三方软件的情况下在SQL Server 2005上的两个数据库之间做差异?只有sqlcmd或SQL Management Studio。在SQL Server 2005上作出差异

的差异必须是只在结构:表,存储程序(USP),视图等

感谢。

注意:不,我不可以安装什么,是为舞台环境。

+0

我认为这里有两个部分的问题。一个是提取模式,另一个是生成schema-diff。 SMO可以用于以易于重复的方式提取模式(例如使用PowerShell)。然而,比较模式 - 除了最琐碎的“什么是不同的?”之外的任何东西。案例 - 我真的会考虑选择Schema Diff工具(并在提取模式中在开发环境*中运行*)。大多数Schema Diff工具非常不友好,需要“真正的数据库”,但有些工具只能用于脚本。 (价格> 0美元。)另外,*也许尝试DBA堆栈*。 – 2012-03-13 17:49:04

回答

3

使用All Tasks -> Generate Script,并将两台服务器的结果保存在不同的文件中。

现在,您可以使用标准差异工具(例如windiff)来比较两者。由于您正在比较工作站上的文件,因此不必在数据库服务器上安装任何内容。

+0

非常感谢您的解决方案! – 2012-03-13 17:31:39

+1

不幸的是这非常费时。有第三方解决方案可以采用“脚本”并使用它们生成适当的模式差异。当然,这是付费的。 (我还没有在开源/免费产品上找到类似的功能,不包括先手动导入到活动数据库。)另外,“生成脚本”需要一堆[每次]点击才能使它“恰到好处”: -/ – 2012-03-13 17:43:29

+0

感谢您的提示。真的,如果没有在生产环境中安装它,我就无法安装任何东西(我不能这么做),即使它是开源的。 – 2012-03-13 18:19:31