MSSQL查詢資料所在的表與列

2021-06-09 06:56:42 字數 1070 閱讀 6411

本人無意中需要幫助維護我們的鄰居-----巴倫臺醫院的醫院管理系統。

其中在一次醫保資料上傳的過程中提示 病人 74828429  插入錯誤,處方號不能為空。

經查,發現是把醫院管理系統的 sql2000資料庫的內容,經過處理之後,插入到oracle8 資料庫中。

那麼這裡只提示了oracle8的表名列名。卻沒有提供源資料庫 sql2000的表名列名

好吧,那麼我們在源資料庫裡找。sql2000嗎,用了8年了,還不熟悉麼。

可是,一開啟,就傻眼了,天啦,816個表%&$#@#…………

沒辦法,只好請教csdn的高手。一天以後,網友 wxg22526451 給了答案。

在查詢分析器中執行如下語句:

declare @str varchar(100)

set @str='這裡請自己填寫'  --要搜尋的字串

declare @s varchar(8000)

declare tb cursor local for

select s='if exists(select 1 from ['+b.name+'] where ['+a.name+'] like

''%'+@str+'%'')

print ''所在的表及字段: ['+b.name+'].['+a.name+']'''

from syscolumns a join sysobjects b on a.id=b.id

where b.xtype='u' and a.status>=0

and a.xusertype in(175,239,231,167)

open tb

fetch next from tb into @s

while @@fetch_status=0

begin

exec(@s)

fetch next from tb into @s

endclose tb

deallocate tb

在一分鐘之後,計算機給出了答案,順利找到了這個資料所在的表、列。問題自然就解決了。

在這裡特別感謝熱心的csdn網友,包括其它的幾位給出不同方案的朋友,感謝csdn網。

查詢MSSQL資料庫表的列備註

select 庫名 case when a.colorder 1 then h.table catalog else end,模式 case when a.colorder 1 then h.table schema else end,表名 case when a.colorder 1 then d...

查詢日期所在1周的資料

select t kojin yotei.yotei as yotei t kojin yotei.basho as basho t kojin yotei.yotei start dt as yotei start dt t kojin yotei.yotei end dt as yotei en...

查詢資料庫所有表以及表的所有列

select from tab select a.b.comments from select t.table name,t.column name,t.data type from user tab cols t where table name entp show a left join sel...