SQL Server比較2table欄位的差異

2022-02-06 14:48:05 字數 2125 閱讀 3350

由於專案前後用了2個資料庫,需要統計資料庫結構的變化,需要統計每個表的變化,由於人工核對挺浪費時間,就寫了一點**:

1.統計表的字段數量(查詢表有多少列):

select count(name)  from syscolumns where  id=object_id('表名')

eg:select count(name)  from syscolumns where  id=object_id('t_dk')

2.查詢資料庫欄位名 (表有哪些字段)

select name  

from 資料庫名.dbo.syscolumns  

where id=(

select id from 資料庫名.dbo.sysobjects  

where name='表名'

)eg:

select name 

from catsic_compare0803dilong_2017080311.dbo.syscolumns  

where id=(

select id from catsic_compare0803dilong_2017080311.dbo.sysobjects  

where name='t_cbjzc'

)3.比較兩個資料庫相應表的差異(查詢表對應的字段是否一致)

本部分是基於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

eg: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

SQL Server比較2table欄位的差異

由於專案前後用了2個資料庫,需要統計資料庫結構的變化,需要統計每個表的變化,由於人工核對挺浪費時間,就寫了一點 1.統計表的字段數量 查詢表有多少列 select count name from syscolumns where id object id 表名 eg select count nam...

SQL Server 中日期比較

1.當前系統日期 時間 select getdate 2.dateadd 在向指定日期加上一段時間的基礎上,返回新的 datetime 值 例如 向日期加上2天 select dateadd day,2,2004 10 15 返回 2004 10 17 00 00 00.000 3.datediff...

Oracle與SQL Server的比較

microsoft sql server針對oracle最強一點就是產品成本相對低廉。sql server企業版的成本要遠遠低於oracle企業版資料庫的成本。在增加像表分割槽 壓縮 聯機分析處理olap等等功能元件後,再進行對比則將更直觀。更不用說你必須為企業sku購買這些附加功能元件。如果你想在...