仅过滤 DBO schema/owner - 不显示 SYS 存储过程

Filter DBO schema/owner only - dont show SYS Stored Procedures

我正在通过 SMO 编写数据库中所有存储过程的脚本。 它现在从 DBO 和 SYS owner/schema's

返回存储过程

如何过滤它以仅显示来自 DBO 的 SP:

            StringCollection spScripts = AdventureWorks.Script(scriptOptions);
            foreach (StoredProcedure mySP in AdventureWorks.StoredProcedures)
            {
                foreach (string script in spScripts)
                    sw.WriteLine(script);

                /* Generating CREATE TABLE command */
                spScripts = mySP.Script();
                foreach (string script in spScripts)
                    sw.WriteLine(script);
            }

StoredProcedure class 有一个 Schema 属性,你可以用它来过滤。

if (mySP.Schema == "dbo")

现在不确定 StoredProcedures 集合是否实现了正确的接口,但也许您甚至可以通过 LINQ 在 StoredProcedures 对象上直接过滤它

AdventureWorks.StoredProcedures.Where(p => p.Schema == "dbo")