SqlSmoObject 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
包含所有實例類別的共通功能
[System.ComponentModel.TypeConverter(typeof(Microsoft.SqlServer.Management.Sdk.Sfc.LocalizableTypeConverter))]
public abstract class SqlSmoObject : Microsoft.SqlServer.Management.Smo.SmoObjectBase, Microsoft.SqlServer.Management.Common.IRefreshable, Microsoft.SqlServer.Management.Sdk.Sfc.IAlienObject, Microsoft.SqlServer.Management.Sdk.Sfc.ISfcPropertyProvider, System.ComponentModel.INotifyPropertyChanged
[<System.ComponentModel.TypeConverter(typeof(Microsoft.SqlServer.Management.Sdk.Sfc.LocalizableTypeConverter))>]
type SqlSmoObject = class
inherit SmoObjectBase
interface ISfcPropertyProvider
interface ISfcNotifyPropertyMetadataChanged
interface INotifyPropertyChanged
interface IRefreshable
interface IAlienObject
Public MustInherit Class SqlSmoObject
Inherits SmoObjectBase
Implements IAlienObject, INotifyPropertyChanged, IRefreshable, ISfcPropertyProvider
- 繼承
- 衍生
- 屬性
- 實作
建構函式
| 名稱 | Description |
|---|---|
| SqlSmoObject() |
包含所有實例類別的共通功能 |
欄位
| 名稱 | Description |
|---|---|
| m_ExtendedProperties |
包含所有實例類別的共通功能 |
| singletonParent |
一般的 SMO 物件透過 parentColl(父類別中對應的集合)存取父類別的參考。 單例類在父體中沒有集合。 |
屬性
| 名稱 | Description |
|---|---|
| CollationDatabaseInServer |
包含所有實例類別的共通功能 |
| DatabaseEngineEdition |
回傳 SMO 物件的 DatabaseEngineEdition |
| DatabaseEngineType |
回傳 SMO 物件的 DatabaseEngineType |
| ExecuteForScalar |
包含所有實例類別的共通功能 |
| ExecutionManager |
包含所有實例類別的共通功能 |
| IsTouched |
該物件是否已被觸及以無條件腳本化 Alter |
| ObjectInSpace |
包含所有實例類別的共通功能 |
| ParentCollection |
回傳包含該物件的集合。 可能是 Null。 |
| Properties |
包含所有實例類別的共通功能 |
| ScalarResult |
包含所有實例類別的共通功能 |
| ServerVersion |
回傳包含該物件的伺服器的 ServerVersion。 若物件未與連接伺服器相關聯,則會回傳已知的最高伺服器版本。 |
| State |
回傳物件的狀態 (繼承來源 SmoObjectBase) |
| Urn |
回傳物件的 Urn 值,該物件即時計算 |
| UserData |
包含所有實例類別的共通功能 (繼承來源 SmoObjectBase) |
方法
| 名稱 | Description |
|---|---|
| AddDatabaseContext(StringCollection) |
方法會從 create script 相關方法(來自像 Table、Index 等衍生類別)中被呼叫。 |
| AlterImpl() |
包含所有實例類別的共通功能 |
| AlterImplWorker() |
包含所有實例類別的共通功能 |
| BindDefaultImpl(String, String, Boolean) |
包含所有實例類別的共通功能 |
| BindRuleImpl(String, String, Boolean) |
包含所有實例類別的共通功能 |
| CheckObjectState() |
包含所有實例類別的共通功能 |
| CheckObjectState(Boolean) |
這是一個虛擬函式,因此衍生類別若想對物件狀態做額外檢查,可以覆寫它 |
| CheckObjectStateImpl(Boolean) |
檢查物件狀態因為它不是可避免的,這個函式可以直接呼叫,這表示導出類別無法提供自己的驗證 |
| CleanObject() |
包含所有實例類別的共通功能 |
| CreateImpl() |
包含所有實例類別的共通功能 |
| CreateOrAlterImpl() |
包含所有實例類別的共通功能 |
| Discover() |
最佳努力發現機制:此方法會反映元資料並取得所有可用物件 |
| DropImpl(Boolean, Boolean) |
對於 Azure 中使用者資料庫的丟棄呼叫,當資料庫被丟棄時,連線也會關閉。ExecutionManager 通常會嘗試透過重新開啟連線來重試此類呼叫。我們希望在 handleSevereError 為真時避免此重試。 |
| DropImpl(Boolean) |
會掉落該物體 |
| DropImplWorker(Urn, Boolean) |
會掉落該物體 |
| ExecuteNonQuery(StringCollection, Boolean, Boolean) |
執行 SQL 語句 |
| ExecuteWithModes(SqlExecutionModes, Action) |
在給定的執行模式下執行給定動作。 動作完成或失敗後會重置原始模式。 |
| FormatSqlVariant(Object) |
包含所有實例類別的共通功能 |
| GenerateAlterEvent() |
包含所有實例類別的共通功能 |
| GenerateAlterEvent(Urn, Object) |
包含所有實例類別的共通功能 |
| GetChildType(String, String) |
包含所有實例類別的共通功能 |
| GetContextDB() |
包含所有實例類別的共通功能 |
| GetDBName() |
包含所有實例類別的共通功能 |
| GetDisabledProperties(ScriptingPreferences) |
提供可列舉的屬性,這些屬性在特定伺服器類型或版本下明確被禁用。 這不是所有對指定目標不適用的屬性清單。 |
| GetFragOptionString(FragmentationOption) |
包含所有實例類別的共通功能 |
| GetPropValue(String) |
從以下取得屬性值:- 如果有財產可用(髒資產或已取回),直接取物品袋 - 否則呼叫我們的 OnPropertyMissing 方法。 如果屬性值在任一情況下都是 NULL,我會拋出例外。 |
| GetPropValueOptional(String) |
從以下取得屬性值:- 如果狀態正在建立或我們處於設計模式(可能有 NULL 值),則在 property bag 中取得 - 否則呼叫我們的 OnPropertyMissing 方法(若值為 NULL,則拋出例外) |
| GetPropValueOptional<T>(String, T) |
回傳所命名屬性的值。 如果物件處於「創建」狀態且屬性尚未設定,則會回傳 defaultValue。 如果物件存在,defaultValue 會被忽略,實際值會被回傳。 |
| GetPropValueOptionalAllowNull(String) |
從以下取得屬性值:- 如果狀態正在建立或我們處於設計模式(可能為 NULL),則在 property bag 中取得 - 否則呼叫我們的 OnPropertyMissing 方法(可能為 NULL) |
| GetRealValue(Property, Object) |
回傳該房產的實際價值。 |
| GetServerName() |
包含所有實例類別的共通功能 |
| GetServerObject() |
包含所有實例類別的共通功能 |
| GetSqlServerVersionName() |
取得目前連線的 sqlserver 公用名稱,例如:「SQL Server 2008」。 |
| GetStringComparer() |
回傳所有子物件集合用來比較物件名稱的比較器。 伺服器的比較器基於主控的排序。資料庫及其子節點的比較器則基於資料庫的整合。 |
| GetTypeFromUrnSkeleton(Urn) |
包含所有實例類別的共通功能 |
| GetUrnRecursive(StringBuilder, UrnIdOption) |
計算物件的 Urn,可能還會包含定義中除了金鑰欄位以外的其他欄位。 |
| GetUrnRecursive(StringBuilder) |
計算該物件的骨灰盒。 |
| GetUrnSuffix(Type) |
從指定的類型取得 UrnSuffix 後綴——如果該類型沒有定義名為 UrnSuffix 的靜態屬性,則取得空字串。 |
| ImplInitialize(String[], OrderBy[]) |
包含所有實例類別的共通功能 |
| InitChildCollection(Urn, Boolean) |
初始化與該類型相關的子物件集合。 例如,名稱 Column 會初始化 Columns 集合。 |
| Initialize() |
包含所有實例類別的共通功能 |
| Initialize(Boolean) |
透過從列舉器讀取物件的屬性來初始化物件 |
| IsCollectionDirty(ICollection) |
包含所有實例類別的共通功能 |
| IsExpressSku() |
回傳包含此物件的伺服器是否為 Express SKU |
| IsObjectDirty() |
包含所有實例類別的共通功能 |
| IsObjectInitialized() |
包含所有實例類別的共通功能 |
| IsObjectInSpace() |
包含所有實例類別的共通功能 |
| IsSupportedOnSqlAzure(Type) |
回傳 Microsoft Azure SQL Database 是否支援某 SMO 物件類型。 |
| IsSupportedProperty(String) |
驗證該指定屬性在目前伺服器環境中是否被支援 |
| IsVersion80SP3() |
包含所有實例類別的共通功能 |
| IsVersion90AndAbove() |
包含所有實例類別的共通功能 |
| MakeSqlString(String) |
回傳一個完全轉義的 SQL 字串,並包裹在 SQL 字串單引號中 |
| MarkDropped() |
包含所有實例類別的共通功能 |
| MarkForDropImpl(Boolean) |
包含所有實例類別的共通功能 |
| PostAlter() |
若衍生類別在更改物件後需要執行補充動作,則此函式應被覆蓋 |
| PostCreate() |
這個函式是設計給衍生類別覆寫,如果衍生類別在物件建立後需要執行補充動作 |
| PostDrop() |
這個函式是設計給派生類別覆寫,如果衍生類別在丟棄物件後需要執行補充動作 |
| QuoteString(String, Char, Char) |
回傳名稱並附有分隔符。 |
| Refresh() |
透過從伺服器讀取物件屬性來刷新物件屬性 |
| ScriptImpl() |
包含所有實例類別的共通功能 |
| ScriptImpl(ScriptingOptions) |
回傳一個包含該物件腳本的 StringCollection 物件。 若 ScriptData 為真,此方法會拋出錯誤 |
| SetAccessToken(IRenewableToken) |
設定 accessToken 以進行連線。 |
| SetParentImpl(SqlSmoObject) |
包含所有實例類別的共通功能 |
| SetState(SqlSmoState) |
設定物件狀態(存在、丟棄等)應用程式應避免使用此方法。 (繼承來源 SmoObjectBase) |
| SqlDateString(DateTime) |
將 DateTime 轉換為字串,格式明確,且可在 T-SQL 程式碼中轉為 SQL datetime,無論伺服器語言設定為何。 |
| SqlString(String) |
串中所有單引號逃逸 |
| ThrowIfAboveVersion100(String) |
若此物件的 ServerVersion 主要版本高於 10.0(SQL 2008),則拋出例外。 |
| ThrowIfAboveVersion80(String) |
若此物件的 ServerVersion 主要版本高於 8.0(SQL 2000),則會拋出例外。 |
| ThrowIfBelowVersion100(String) |
若此物件的 ServerVersion 主要版本低於 10.0(SQL 2008),則拋出例外。 |
| ThrowIfBelowVersion110(String) |
若來源或目的地伺服器低於 11.0(SQL 2012),會拋出 UnsupportedVersionException |
| ThrowIfBelowVersion110Prop(String) |
若此物件的 ServerVersion 主要版本低於 11.0(SQL 2012),則會拋出例外並說明該屬性不支援。 |
| ThrowIfBelowVersion120(String) |
若此物件的 ServerVersion 主要版本低於 12.0(SQL 2014),則會拋出例外。 |
| ThrowIfBelowVersion120Prop(String) |
若此物件的 ServerVersion 主要版本低於 12.0(SQL 2014),會拋出例外並說明該屬性不支援。 |
| ThrowIfBelowVersion130(String) |
如果此物件的 ServerVersion 主要版本低於 13.0(SQL 2016),則會拋出例外。 |
| ThrowIfBelowVersion130Prop(String) |
若該物件的 ServerVersion 主要版本低於 13.0(SQL 2016),則會拋出例外並說明該指定屬性不支援。 |
| ThrowIfBelowVersion140(String) |
若此物件的 ServerVersion 主要版本低於 14.0(SQL 2017),則拋出例外 |
| ThrowIfBelowVersion140Prop(String) |
若該物件的 ServerVersion 主要版本低於 14.0(SQL 2017),會拋出例外並說明該屬性不支援 |
| ThrowIfBelowVersion160(String) |
若該物件的 ServerVersion 主要版本低於 16.0,則拋出例外 |
| ThrowIfBelowVersion80(String) |
若此物件的 ServerVersion 主要版本低於 8.0(SQL 2000),則拋出例外。 |
| ThrowIfBelowVersion80SP3() |
如果此物件的 ServerVersion 低於 8.760(8.0 SP3),則會拋出例外 |
| ThrowIfBelowVersion90(String) |
若此物件的 ServerVersion 主要版本低於 9.0(SQL 2005),則拋出例外 |
| ToString() |
包含所有實例類別的共通功能 |
| Touch() |
標記「觸碰」物件以進行 Alter 無條件腳本化。 |
| TouchImpl() |
虛擬方法讓衍生類別在被觸碰時能進行額外工作。 |
| Trace(String) |
包含所有實例類別的共通功能 |
| UnbindDefaultImpl(Boolean) |
包含所有實例類別的共通功能 |
| UnbindRuleImpl(Boolean) |
包含所有實例類別的共通功能 |
| UpdateCollectionState2(ICollection) |
包含所有實例類別的共通功能 |
| Validate(String, Object[]) |
包含所有實例類別的共通功能 (繼承來源 SmoObjectBase) |
事件
| 名稱 | Description |
|---|---|
| PropertyChanged |
包含所有實例類別的共通功能 |
| PropertyMetadataChanged |
包含所有實例類別的共通功能 |
| PropertyMissing |
當物件初始化後擷取屬性時,物件需要發出 SQL 查詢以取得該值,會觸發事件。 此事件會同步被觸發,因此擷取會被阻擋,直到所有處理者返回。 |
明確介面實作
| 名稱 | Description |
|---|---|
| IAlienObject.Discover() |
包含所有實例類別的共通功能 |
| IAlienObject.GetDomainRoot() |
包含所有實例類別的共通功能 |
| IAlienObject.GetParent() |
包含所有實例類別的共通功能 |
| IAlienObject.GetPropertyType(String) |
發現房產類型。 |
| IAlienObject.GetPropertyValue(String, Type) |
取得給定屬性的值。 如果找不到財產,就要拋棄。 |
| IAlienObject.GetUrn() |
包含所有實例類別的共通功能 |
| IAlienObject.Resolve(String) |
包含所有實例類別的共通功能 |
| IAlienObject.SetObjectState(SfcObjectState) |
根據提供的 SfcObjectState 設定此物件的狀態。 |
| IAlienObject.SetPropertyValue(String, Type, Object) |
設定給定屬性的值,若該屬性可寫。 若財產袋中沒有財產,則使用反射。 若找不到該屬性,則拋出例外。 |
| ISfcPropertyProvider.GetPropertySet() |
包含所有實例類別的共通功能 |
擴充方法
| 名稱 | Description |
|---|---|
| GetAssessmentItems(SqlSmoObject, String[]) |
找到給定 |
| GetAssessmentResults(SqlSmoObject, IEnumerable<ICheck>) |
同步執行評估, |
| GetAssessmentResults(SqlSmoObject, String[]) |
同步執行評估, |
| GetAssessmentResultsList(SqlSmoObject, IEnumerable<ICheck>) |
非同步執行評估, |
| GetAssessmentResultsList(SqlSmoObject, String[]) |
非同步執行評估, |
| IsSupportedObject<T>(SqlSmoObject, ScriptingPreferences) |
檢查該物件根伺服器的 and ServerVersion 是否支援DatabaseEngineType指定型別。 如果 ScriptingPreferences 非空,也會檢查指定型別是否被ServerVersionDatabaseEngineType目標伺服器的 和 支援。 |