当我尝试使用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
子句时,它会返回很多存储过程,否则不会返回作为测试创建的存储过程。
答案 0 :(得分:0)
试试这段代码
if (mystr.Owner != "sys")
{
classGenerated += mystr.Name + Environment.NewLine;
}
答案 1 :(得分:0)
使用如下的Schema属性:
if (mystr.Schema != "sys")
{
classGenerated += mystr.Name + Environment.NewLine;
}