SQL Server比較2table欄位的差異

2022-03-12 05:41:21 字數 2477 閱讀 5892

由於專案前後用了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:

1

select

name 23

from

catsic_compare0803dilong_2017080311.dbo.syscolumns 45

where id=(6

7select id from catsic_compare0803dilong_2017080311.dbo.sysobjects where name=

't_cbjzc'8

9   )

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:

1

select

*from(2

select

name

3from

catsic_compare0803dilong_2017080311.dbo.syscolumns

4where id=(5

select id from

catsic_compare0803dilong_2017080311.dbo.sysobjects

6where name=

't_cbjzc')

7 ) t1 full

outer

join(8

select name from

catsicgl_43_2016eroad_2017111110.dbo.syscolumns

9where id=(10

select id from

catsicgl_43_2016eroad_2017111110.dbo.sysobjects

11where name=

't_cbjzc'12

)13 ) t2 on t1.name=t2.name

只顯示字段欄位名有差異的字段,增加乙個條件即可where t1.name is null or t2.name is null

即全部code:

1

select

*from(2

select

name

3from

catsic_compare0803dilong_2017080311.dbo.syscolumns

4where id=(5

select id from

catsic_compare0803dilong_2017080311.dbo.sysobjects

6where name=

't_cbjzc')

7 ) t1 full

outer

join(8

select name from

catsicgl_43_2016eroad_2017111110.dbo.syscolumns

9where id=(10

select id from

catsicgl_43_2016eroad_2017111110.dbo.sysobjects

11where name=

't_cbjzc'12

)13 ) t2 on t1.name=

t2.name

1415

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購買這些附加功能元件。如果你想在...