经常修改数据库,导致和客户那边的数据库不一样了,该如何解决
经常修改数据库,导致和客户那边的数据库不一样了
做了一个系统,刚开始的时候,我如果更改了代码或改了数据库,直接把我这边的mdf文件发过去,替换他那边的,就可以了。后来他那边录了很多东西,就不能这样替换了,每次更改数据库,我都写一个文档,让他那边也这样修改。
时间长了,出问题了,不知道哪一步没做对,我们两边的数据库不一样。
我想写一段代码,来判断一下我们两边到底哪些字段不一样,大侠提示一下吧。
他那边的服务器是不允许联网的。
------解决方案--------------------
你首先需要把你的库换另外一个名字附加到客户,在客户那边执行,或者把客户的库拿到你本地执行。
大概就是下面的思路,至于触发器,存储过程..你需要对比什么写什么~
做了一个系统,刚开始的时候,我如果更改了代码或改了数据库,直接把我这边的mdf文件发过去,替换他那边的,就可以了。后来他那边录了很多东西,就不能这样替换了,每次更改数据库,我都写一个文档,让他那边也这样修改。
时间长了,出问题了,不知道哪一步没做对,我们两边的数据库不一样。
我想写一段代码,来判断一下我们两边到底哪些字段不一样,大侠提示一下吧。
他那边的服务器是不允许联网的。
------解决方案--------------------
你首先需要把你的库换另外一个名字附加到客户,在客户那边执行,或者把客户的库拿到你本地执行。
大概就是下面的思路,至于触发器,存储过程..你需要对比什么写什么~
- SQL code
--表名不一样 SELECT TABLE_NAME FROM TEMP1.INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_NAME NOT IN (SELECT TABLE_NAME FROM TEMP2.INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE') --表结构不一样 SELECT TEMP1.DBO.SYSOBJECTS.NAME AS TABLE_NAME, TEMP1.DBO.SYSCOLUMNS.NAME AS COLUMN_NAME FROM TEMP1.DBO.SYSCOLUMNS INNER JOIN TEMP1.DBO.SYSOBJECTS ON TEMP1.DBO.SYSCOLUMNS.ID = TEMP1.DBO.SYSOBJECTS.ID WHERE (TEMP1.DBO.SYSOBJECTS.XTYPE = 'u') AND (NOT (TEMP1.DBO.SYSOBJECTS.NAME LIKE 'dtproperties'))
------解决方案--------------------
右键数据库--任务--生成脚本