Veja estas dicas aqui usando SQL apenas:
A)
SELECT C.Name, O.Name FROM SYSCOLUMNS C, SYSOBJECTS O
WHERE C.Name = 'OrderID' AND O.Name = 'Orders' AND OBJECTPROPERTY(C.id, N'IsUserTable') = 1
ORDER BY O.Name
--> Aqui procura descobrir quais tabelas tem determinada coluna.
SELECT C.Name, O.Name FROM SYSCOLUMNS C, SYSOBJECTS O WHERE C.Name LIKE '%Orders%' AND C.ID = O.ID AND OBJECTPROPERTY(c.id, N'IsProcedure') = 1 ORDER BY O.Name
--> Aqui procura por todas tabelas que contenham determinado nome na descrição da mesma.
SELECT O.Name FROM SYSOBJECTS O WHERE O.Name LIKE '%Orders%' AND OBJECTPROPERTY(O.ID, 'IsProcedure') = 1 ORDER BY O.Name
--> Aqui procura por textos dentro de SPs
SELECT SUBSTRING(LTRIM(RTRIM([text])),4,150) FROM SYSCOMMENTS WHERE [text] LIKE '%vw_Mmgr_Usuario%' ORDER BY [text]
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--> Para saber se objeto é View: -- OBJECTPROPERTY(id, N'IsView') = 1
--> Para saber se objeto é Stored Procedure: -- OBJECTPROPERTY(id, N'IsProcedure') = 1
--> Para saber se objeto é Function: -- xtype in (N'FN', N'IF', N'TF')
--> Para saber se objeto é Primary Key: -- OBJECTPROPERTY(id, N'IsPrimaryKey') = 1
--> Para saber se objeto é Foreign Key: -- OBJECTPROPERTY(id, N'IsPrimaryKey') = 1
--> Para saber se objeto é Trigger: -- OBJECTPROPERTY(id, N'IsTrigger') = 1
B)
Primeiro devemos saber onde buscar as informações...
-- Esse select retorna todas as tabelas do banco
select * from sysobjects where xtype = 'u'
-- Esse select retorna todas as colunas do banco
select * from syscolumns
-- Agora vamos cruzar as duas tabelas
select name from syscolumns where id = (select id from sysobjects where xtype = 'u' and name = 'tabeladesejada') -- Nome da tabela