狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

如何快速比較SQL Server兩個(gè)不同數(shù)據(jù)庫(kù)明細(xì)表之間的字段差異

admin
2022年4月22日 10:19 本文熱度 5228
用以下幾個(gè)SQL,可以快速查出兩個(gè)不同數(shù)據(jù)庫(kù)明細(xì)表之間的差異:

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

2、如果字段數(shù)量不同,那么繼續(xù)用以下SQL獲取字段名稱和屬性,做對(duì)比即可:
select name from syscolumns where id=(select id from sysobjects where name='表名')
或者更精確的獲取數(shù)據(jù)類型:
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 '長(zhǎng)度',scale as '小數(shù)位',type as '原始類型' from syscolumns where id=(select id from sysobjects where name='表名');

3、比較兩個(gè)不同數(shù)據(jù)庫(kù)A、數(shù)據(jù)庫(kù)B相應(yīng)表的差異(查詢表對(duì)應(yīng)的字段是否一致)
  本部分是基于2寫的:
select * from (
  select name
  from 數(shù)據(jù)庫(kù)A.dbo.syscolumns
  where id=(
    select id from 數(shù)據(jù)庫(kù)A.dbo.sysobjects
    where name='表名A')
) T1 FULL OUTER JOIN(
  select name from 數(shù)據(jù)庫(kù)B.dbo.syscolumns
  where id=(
    select id from 數(shù)據(jù)庫(kù)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

只顯示字段字段名有差異的字段,增加一個(gè)條件即可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 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved