2013-03-14 33 views
0

我有一個reason_id外鍵的表值搜索的表。我需要將其映射回其主表。我已經在數據庫中搜索了匹配/相似的列名,但我無法找到表。基於表中包含的

我會與reason_id相關值的列表。我想搜索包含我擁有的列表的表。任何幫助,將不勝感激。

這是我正在運行搜索欄查詢:

select 
    t.name as Table_Name, 
    SCHEMA_NAME(schema_id) as schema_name, 
    c.name as Column_Name 
from 
    sys.tables as t 
    inner join 
    sys.columns c 
    on 
    t.OBJECT_ID = c.OBJECT_ID 
where 
    c.name like '%reason%' 
+1

您的表的定義隨走,不包含一個指向回源表的外鍵約束? – woemler 2013-03-14 14:36:40

+0

這是一個好的開始。接下來,將按表格分組的輸出格式化爲在匹配過濾器的表格的所有列中搜索的有效SQL。編寫SQL來創建有效的SQL是改善SQL理解的好方法;回電遇到任何特定的困難。 – 2013-03-14 14:38:42

+0

我相信沒有表,其中LIKE「%原因%」 ...... – MattW 2013-03-14 14:38:57

回答

0

沒有找到其他表中的相關數據沒有簡單的方法。

我用的工具,如ApexSQL SearchSQL Search嘗試。兩者都是免費的,您不會因爲這些問題而出錯。

如果你想與SQL做才確定具有相同的數據類型的所有表中的所有列。爲此,請使用sys.columns, sys.types and sys.tables視圖。一旦你發現所有的列只是嘗試開始爲每個表編寫查詢,直到找到合適的列。

我會像這樣的東西

select COUNT(*) 
from tableX 
where tableX.matchedColumn in 
(
    -- take 100 or more random rows from the original table 
    -- if result gives you a number that is near to the number of values listed here then you are most probably on the right track 
) 
相關問題