Если вы не настроены, как это сделать, вы можете проанализировать сценарии sql, а затем использовать объектную модель, чтобы специально найти schema = admin && table = table.
Вариант 1:
Сгенерируйте примерный план запроса и проанализируйте ссылки на таблицы. Если вы находитесь на SQLL 2005+, вы можете получить его в формате XML и запросить как:
;WITH XMLNAMESPACES (default 'http://schemas.microsoft.com/sqlserver/2004/07/showplan')
select
t.n.value('./@Database', 'sysname') as DatabaseName,
t.n.value('./@Schema', 'sysname') as SchemaName,
t.n.value('./@Table', 'sysname') as TableName,
t.n.value('./@Column', 'sysname') as ColName
from @x.nodes('//ColumnReference') as t(n)
go
Вариант 2:
Если вы хотите выполнить эту работу на стороне клиента и иметь sql2008, добавьте ссылку на C: \ Program Files \ Microsoft SQL Server \ 100 \ Tools \ Binn \ VSShell \ Common7 \ IDE \ Microsoft.SqlServer.SqlParser. длл и делать как
SqlScript script = Parser.Parse(@"create proc sp1 as select 'abc' as abc1");
Затем вы можете обработать script.Xml и искать такой узел, как
Я уверен, что вы можете найти его строго типизированным и в объектной модели, так как я вижу SqlTableRefExpression в сборке, но я не уверен, куда детализировать.