Smo用户创建了存储过程

时间:2013-12-19 15:56:55

标签: c# sql smo

当我尝试使用smo从db获取存储过程列表时,即使数据库为空,它也列出了很多存储过程。

我希望能够获得非系统过程的存储过程列表。 IsSystemObject无效。

ServerConnection serverConnection = new ServerConnection(sqlConnection);
myserver = new Server(serverConnection);
Database mydb = new Database();
mydb = myserver.Databases[cmbDbname.Text];
string classGenerated = "";
foreach (StoredProcedure mystr in mydb.StoredProcedures)
{
    if (!mystr.IsSystemObject)
    {
        classGenerated += mystr.Name + Environment.NewLine;
    }
}
spClassText.Text = classGenerated;

这里,当我删除!mystr.IsSystemObject子句时,它会返回很多存储过程,否则不会返回作为测试创建的存储过程。

2 个答案:

答案 0 :(得分:0)

试试这段代码

if (mystr.Owner != "sys") 
{
        classGenerated += mystr.Name + Environment.NewLine;
} 

答案 1 :(得分:0)

使用如下的Schema属性:

if (mystr.Schema != "sys")
{
    classGenerated += mystr.Name + Environment.NewLine;
}