SqlSmoObject 類別

定義

包含所有實例類別的共通功能

[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
繼承
SqlSmoObject
衍生
屬性
實作

建構函式

名稱 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[])

找到給定 smoObject所有可用的檢定。

GetAssessmentResults(SqlSmoObject, IEnumerable<ICheck>)

同步執行評估, smoObject 並描述 IEnumerable<T> 已發現的問題。 此方法僅執行給定的檢查。checks

GetAssessmentResults(SqlSmoObject, String[])

同步執行評估, smoObject 並描述 IEnumerable<T> 已發現的問題。

GetAssessmentResultsList(SqlSmoObject, IEnumerable<ICheck>)

非同步執行評估, smoObject 並描述 List<T> 已發現的問題。 此方法僅執行給定的檢查。checks

GetAssessmentResultsList(SqlSmoObject, String[])

非同步執行評估, smoObject 並描述 List<T> 已發現的問題。

IsSupportedObject<T>(SqlSmoObject, ScriptingPreferences)

檢查該物件根伺服器的 and ServerVersion 是否支援DatabaseEngineType指定型別。 如果 ScriptingPreferences 非空,也會檢查指定型別是否被ServerVersionDatabaseEngineType目標伺服器的 和 支援。

適用於