在线客服:
AG真人 AG真人
全国服务热线:010-53193650
您的位置:首页 > 新闻中心 >

一种检查两个数据库中的表名和字段是否一致的方法。

浏览 140次 来源:【jake推荐】 作者:-=Jake=-    时间:2021-03-28 18:32:51
[摘要] 他可以看到一个数据库里的表名、字段名、字段类型、和字段大小的信息。执行之后会显示客户的数据库里缺少的表的名字和表里的字段。表一致了之后,我们开始来检查字段名称。当然是在表名一致的前提下才能进行字段的对比。2、不光是检查表,还可以检查视图和存储过程(自定义函数能不能检查到还没有测试)。只能得知名称和字段、参数是否一致,如果参数没有变化,只是修改了一下内容的话就检查不出来了。

我不知道您是否遇到过这种情况。已经为客户安装了该程序,并且客户已经输入了一些信息,然后该程序需要进行相对较大的更改(修改功能,添加模块等),并且不可避免地要对数据库进行某些更改。但是,此时不再可能删除客户的数据库并将其替换为新的数据库。您只能添加表和字段。如果您在修改程序时已经制作了详细的文档,则可以根据文档来修改数据库,但是如果没有文档,或者文档不完整NBA竞猜app ,或者您想检查之后是否有“丢失的鱼”修改完成。那么我们现在该怎么办?有必要一一检查吗? !我们可以使用两个视图和一些SQL语句进行检查。 1、创建一个视图:每个人都不陌生银河体育 ,对吗?编写过代码生成器的兄弟对此很熟悉。他可以在数据库中查看表名称,字段名称,字段类型和字段大小信息。创建两个这样的视图,一个用于读取客户的数据库,另一个用于读取新的数据库。因此asp两字段对比对应更新,我们有了有关这两个数据库的表和字段的信息列表。顺便说一句,还有另一个前提:将新数据附加到客户端的服务器。然后就可以了。 _Sys_Other_TableInfo

SELECT TOP  PERCENT obj.name AS TableName, col.name AS ColName, col.xtype, 
      col.length
FROM 新数据库.dbo.syscolumns col INNER JOIN
      新数据库.sysobjects obj ON col.id = obj.id
ORDER BY obj.name

_Sys_TableInfo

SELECT TOP  PERCENT obj.name AS TableName, col.name AS ColName, col.xtype, 
      col.length
FROM dbo.syscolumns col INNER JOIN
      .sysobjects obj ON col.id = obj.id
ORDER BY obj.name

2、执行查询语句

我们可以使用not in来检查表名是否一致。

select * from __Sys_other_TableInfo
where tablename not in (
select tablename from _Sys_TableInfo )

执行后,缺失表的名称和表中的字段将显示在客户的数据库中。

在表一致之后asp两字段对比对应更新,我们开始检查字段名称。

select * from _Sys_other_TableInfo bb
where colname not in (
select colname from _Sys_TableInfo aa where aa.tablename = bb.tablename)

执行后,将显示不在客户数据库中的字段名称。当然,只能在表名一致的前提下进行字段的比较。

3、下面是控制字段类型,然后是字段大小。

我还没有编写所需的SQL语句。可能不太困难。

这种方法已经在我的一个项目中进行了测试,基本上是正确的。

4、仍然发现了一些问题。

1、如果该表丢失,则可以使用企业管理器自动生成键表语句,但是添加字段会有些麻烦。我不知道您是否有好的解决方案。

2、不仅是清单,还是视图和存储过程(可以检查自定义功能但尚未经过测试)。但是凤凰彩票代理银河国际 ,对于视图和存储过程,您只能知道名称,字段和参数是否相同。如果参数未更改,则仅修改内容就无法检查它们。

3、如果要修改表名或修改字段名,请删除该字段名,而不进行检查。

老王
本文标签:sql增加字段,数据库

推荐阅读

最新评论