【问题标题】:Smo user created stored procedureSmo 用户创建的存储过程
【发布时间】:2013-12-19 15:56:54
【问题描述】:

当我尝试使用 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 子句时,它会返回很多存储过程,否则不会返回我作为测试创建的存储过程。

【问题讨论】:

    标签: c# sql smo


    【解决方案1】:

    像这样使用模式属性:

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

    【讨论】:

      【解决方案2】:

      试试这个代码

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-12
        • 1970-01-01
        相关资源
        最近更新 更多