Я не работал со SMO в 2008 / R2 (только 2005), поэтому я могу что-то упустить, но вот что я попробую:
var procs = from sp in _smoDB.StoredProcedures.OfType<StoredProcedure>()
where !sp.IsSystemObject && !sp.IsEncrypted
select sp;
var options = new ScriptOptions(); // reusable ScriptOptions object
options.SchemaQualify = true;
options.EnforceScriptingOptions = true; // surprise!
foreach ( StoredProcedure sproc in procs )
{
var script = sproc.Script( options );
var scriptText = script[3];
}
(я не проверял это)
Я предполагаю, что хранимая процедура была изначально создана без указания схемы, и это то, что в сценарии. Чтобы получить сценарий с квалификацией схемы, вам нужно применить параметры сценария, и все комментарии и форматирование будут потеряны (вот статья MSDN ).
Я полагаю, что это применимо и к представлениям и функциям.