欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

如何快速比較SQL Server兩個不同數據庫明細表之間的字段差異

admin
2022年4月22日 10:19 本文熱度 4668
用以下幾個SQL,可以快速查出兩個不同數據庫明細表之間的差異:

1、看看兩個表的字段數量是否一致:
select count(name) from syscolumns where id=object_id('表名');

2、如果字段數量不同,那么繼續用以下SQL獲取字段名稱和屬性,做對比即可:
select name from syscolumns where id=(select id from sysobjects where name='表名')
或者更精確的獲取數據類型:
select name as '字段名稱',(CASE WHEN type=56 THEN 'int' WHEN type=39 THEN 'nvarchar' WHEN type=38 THEN 'tinyint' WHEN type=35 THEN 'ntext' WHEN type=106 THEN 'datetime' WHEN type=111 THEN 'datetime' WHEN type=108 THEN 'numeric' ELSE 'unkown' END) as '類型',prec as '長度',scale as '小數位',type as '原始類型' from syscolumns where id=(select id from sysobjects where name='表名');

3、比較兩個不同數據庫A、數據庫B相應表的差異(查詢表對應的字段是否一致)
  本部分是基于2寫的:
select * from (
  select name
  from 數據庫A.dbo.syscolumns
  where id=(
    select id from 數據庫A.dbo.sysobjects
    where name='表名A')
) T1 FULL OUTER JOIN(
  select name from 數據庫B.dbo.syscolumns
  where id=(
    select id from 數據庫B.dbo.sysobjects
    where name='表名B'
  )
) T2 on T1.name=T2.name

  例子:
select * from (
  select name
  from Catsic_Compare0803DiLong_2017080311.dbo.syscolumns
  where id=(
    select id from Catsic_Compare0803DiLong_2017080311.dbo.sysobjects
    where name='t_cbjzc')
) T1 FULL OUTER JOIN(
  select name from Catsicgl_43_2016Eroad_2017111110.dbo.syscolumns
  where id=(
    select id from Catsicgl_43_2016Eroad_2017111110.dbo.sysobjects
    where name='t_cbjzc'
  )
) T2 on T1.name=T2.name

只顯示字段字段名有差異的字段,增加一個條件即可where T1.name is null or T2.name is null

全部code:
select * from (
  select name
  from Catsic_Compare0803DiLong_2017080311.dbo.syscolumns
  where id=(
    select id from Catsic_Compare0803DiLong_2017080311.dbo.sysobjects
    where name='t_cbjzc')
) T1 FULL OUTER JOIN(
  select name from Catsicgl_43_2016Eroad_2017111110.dbo.syscolumns
  where id=(
    select id from Catsicgl_43_2016Eroad_2017111110.dbo.sysobjects
    where name='t_cbjzc'
  )
) T2 on T1.name=T2.name
where T1.name is null or T2.name is null

4、生成自定義SQL,增加缺少的字段:
IF NOT EXISTS (select syscolumns.name from syscolumns RIGHT OUTER JOIN sysobjects ON syscolumns.id = sysobjects.id where (sysobjects.name='表名') AND (syscolumns.name='字段名')) alter TABLE 表名 ADD 字段名 int DEFAULT 0;
IF NOT EXISTS (select syscolumns.name from syscolumns RIGHT OUTER JOIN sysobjects ON syscolumns.id = sysobjects.id where (sysobjects.name='表名') AND (syscolumns.name='字段名')) alter TABLE 表名 ADD 字段名 tinyint DEFAULT 0;
IF NOT EXISTS (select syscolumns.name from syscolumns RIGHT OUTER JOIN sysobjects ON syscolumns.id = sysobjects.id where (sysobjects.name='表名') AND (syscolumns.name='字段名')) alter TABLE 表名 ADD 字段名 nvarchar(50);
IF NOT EXISTS (select syscolumns.name from syscolumns RIGHT OUTER JOIN sysobjects ON syscolumns.id = sysobjects.id where (sysobjects.name='表名') AND (syscolumns.name='字段名')) alter TABLE 表名 ADD 字段名 Decimal(18,2) DEFAULT 0;
IF NOT EXISTS (select syscolumns.name from syscolumns RIGHT OUTER JOIN sysobjects ON syscolumns.id = sysobjects.id where (sysobjects.name='表名') AND (syscolumns.name='字段名')) alter TABLE 表名 ADD 字段名 numeric(10, 2) DEFAULT 0;
IF NOT EXISTS (select syscolumns.name from syscolumns RIGHT OUTER JOIN sysobjects ON syscolumns.id = sysobjects.id where (sysobjects.name='表名') AND (syscolumns.name='字段名')) alter TABLE 表名 ADD 字段名 DateTime DEFAULT getdate();
IF NOT EXISTS (select syscolumns.name from syscolumns RIGHT OUTER JOIN sysobjects ON syscolumns.id = sysobjects.id where (sysobjects.name='表名') AND (syscolumns.name='字段名')) alter TABLE 表名 ADD 字段名 nvarchar(MAX);
IF NOT EXISTS (select syscolumns.name from syscolumns RIGHT OUTER JOIN sysobjects ON syscolumns.id = sysobjects.id where (sysobjects.name='表名') AND (syscolumns.name='字段名')) alter TABLE 表名 ADD 字段名 ntext;

該文章在 2022/4/23 9:12:37 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved