大家不用担心,微软早就为我们考虑到了这一点。虽然IsSystemObject不是系统默认初始化的属性,但我们可以改变这一切,也就是说将IsSystemObject设为默认的属性。在Server类中提供了一个SetDefaultInitFields方法来设置默认属性。下面的代码演示了如何使用SetDefaultInitFields方法来修改Table、View和StoredProcedure类的IsSystemObject属性。要注意的是我们必须为每个对象单独设置IsSystemObject方法。由于本例要使用tables、views和stored procedures的IsSystemObject属性,因此,我们需要调用三次SetDefaultInitFields方法,代码如下:
m_objServer.SetDefaultInitFields(GetType(Table), "IsSystemObject")
m_objServer.SetDefaultInitFields(GetType(Smo.View), "IsSystemObject")
m_objServer.SetDefaultInitFields(GetType(StoredProcedure), "IsSystemObject")
在加入上面的代码后,例子应用程序装载数据库时更快了。