2010-05-13 73 views
2

如何在我的sql數據庫中搜索包含字段tiEntityId的表格。此字段在存儲過程中被引用,但我無法確定此ID是哪個表的主鍵?有什麼建議麼?我目前通過存儲過程定義查找引用通過使用像這樣的文字:SQL幫助 - 找到具有'somefieldId'作爲主鍵的表?

Declare @Search varchar(255) 
SET @Search='[10.10.100.50]' 

SELECT DISTINCT 
o.name AS Object_Name,o.type_desc 
FROM sys.sql_modules  m 
    INNER JOIN sys.objects o ON m.object_id=o.object_id 
WHERE m.definition Like '%'[email protected]+'%' 
ORDER BY 2,1 

任何SQL大師的在那裏知道我需要使用查找包含該字段的表,最好的表,其中那場是主鍵。

回答

1

如果你正在尋找一個包含具有給定名稱的列(在SQL 2005+)主鍵,在這裏你去:

select so.name as TableName, 
     si.name as IndexName, 
     sc.name as ColumnName 
    from sys.indexes si 
    join sys.index_columns sic 
    on si.object_id = sic.object_id 
    and si.index_id = sic.index_id 
    join sys.columns sc 
    on si.object_id = sc.object_id 
    and sic.column_id = sc.column_id 
    join sys.objects so 
    on si.object_id = so.object_id 
where sc.name like '%ColumnName%' 
    and si.is_primary_key = 1 
+0

非常有幫助。非常感謝! 〜CK – Hcabnettek 2010-05-13 18:06:40

2

你可以這樣做:

select table_name 
from INFORMATION_SCHEMA.COLUMNS 
where column_name = 'MyColumn' 
+0

非常實用。非常感謝! 〜ck – Hcabnettek 2010-05-13 18:06:02