我已将应用程序中的性能开销缩小到此块:
Server currentServer = new Server(databaseConnection.DataSource);
Database currentDatabase = currentServer.Databases[databaseConnection.InitialCatalog];
foreach (View view in currentDatabase.Views)
{
if (view.IsSystemObject == false)
{
if (view.Name.Equals(viewName))
{
MessageBox.Show(parent, "A virtual table with that name already exists! Virtual\ntable not created.", "Not created", MessageBoxButton.OK, MessageBoxImage.Information);
break;
}
else
{
valid = true;
break;
}
}
}
我基本上想遍历不属于系统的数据库视图。但是,使用这种方法,SMO
库无论如何都会遍历所有视图。知道如何安排吗?
编辑:
例如,我只有大约 10 个用户定义的视图,但超过 1000 个系统视图。如何跳过系统视图并仅遍历用户定义的视图?