SQL2000和SQL2005的行轉列處理方法

2021-08-29 14:40:33 字數 2160 閱讀 5055

select [show_id]

,[year]

,[n1]

,[n2]

,[n3]

,[n4]

,[n5]

from [datapass_db].[dbo].[test]

1:sql2005中的列轉行.

select [show_id], mon, subtotal

from [datapass_db].[dbo].[test] unpivot

(subtotal for mon in

([n1], [n2], [n3],[n4],[n5])

)as unpvt;

2:sql 2000 中的列轉行

declare @tmpsql varchar(8000)

declare @sql varchar(8000)

select @tmpsql = ''

select @tmpsql = @tmpsql + ' union all select '

+' show_id,'

+' year ,'

+name +' as mon'

+' from dbo.test'

from syscolumns

where object_id('dbo.test')=id and left(name,1) = 'n'

select @tmpsql=stuff(@tmpsql,1,11,'')

select @sql = 'select * from ('+@tmpsql+') t where t.mon>0'

print @sql

exec (@sql)

付送:1:查詢,已知列的表名.

select syscolumns.name,sysobjects.name from syscolumns , sysobjects

where syscolumns.id = sysobjects.id and syscolumns.name='要查的列名'

2:找出在兩個資料庫中表名稱在彼此資料庫中不存在的表名稱,欄位.

select accdb.table_name as accdb_table_name,

accdb.columns_name as accdb_columns_name,

accdb1.table_name as accdb1_table_name,

accdb1.columns_name as accdb1_columns_name

from (select accdb.dbo.sysobjects.name as table_name,

accdb.dbo.syscolumns.name as columns_name

from accdb.dbo.syscolumns inner join

accdb.dbo.sysobjects on

accdb.dbo.syscolumns.id = accdb.dbo.sysobjects.id

where (not (accdb.dbo.syscolumns.name like '@%')) and

(accdb.dbo.sysobjects.xtype = 'u')) accdb left outer join

(select sysobjects.name as table_name,

syscolumns.name as columns_name

from syscolumns inner join

sysobjects on syscolumns.id = sysobjects.id

where (not (syscolumns.name like '@%')) and (sysobjects.xtype = 'u'))

accdb1 on accdb.columns_name = accdb1.columns_name and

accdb.table_name = accdb1.table_name

where (accdb1.table_name is null) or

(accdb1.columns_name is null) order by accdb.table_name,accdb.columns_name

其中accdb1為舊庫,accdb為新庫。

不只能查出表不同, 還包括欄位的

Sql2000和Sql2005共存安裝詳細過程

在安裝了sql2000的基礎上安裝sql2005的詳細過程 sql2005版本 sql2005開發版,兩張cd的那種 作業系統 window 2003 server 假設您的電腦已安裝了sql2000,下面開始安裝sql2005。一 執行光碟1 跳過 準備 步驟,直接進行 伺服器元件 工具 聯機叢書...

SQL2005的資料轉成SQL2000

直接restore或附加應該是不行的,用指令碼 導資料肯定沒有問題。2005轉到2000的步驟 1.生成for 2000版本的資料庫指令碼 2005 的manger studio 開啟 物件資源管理器 沒有的話按f8 連線到你的例項 右鍵要轉到2000的庫 任務 生成指令碼 在 指令碼嚮導 的 選擇...

SQL2005和SQL2000共存時的連線

因為有乙個舊的專案要維護,特意安裝了sql2000,開始還擔心無法安裝呢,原來是可以在同一臺機器安裝兩個sql資料庫的,但是在安裝sql2000的時候一定要我填寫例項名,奇怪!以前從來沒注意過的東東!填乙個吧。裝好sql開始裝sp4,還真是麻煩啊。都搞定了,連線吧 發現不對的地方了,我現在2005和...