更新 DacPackage 中的模型,以新的模型取代目前的模型。 在更新之前,此模型將會經過驗證,如果遇到錯誤則會擲回 DacServicesException。 如果呼叫端想要封鎖警告和錯誤,他們必須藉由呼叫 Validate() 及檢查傳回的訊息中是否包含任何錯誤或警告來驗證此模型。 注意:只有模型會被取代 - 所有其他成品 (例如重構記錄、預先部署指令碼、部署後指令碼和參與者成品) 都不會更動。 如果這些成品中有任何一個依賴不再位於更新之模型中的元素,則部署可能會失敗。 呼叫端必須負責確認這些成品與新的模型一致。 Package API 可用來更新其他成品 (例如重構記錄和指令碼),並使其與更新的模型維持一致狀態。 這些成品會儲存為封裝組件,並以其 URI 加以識別。 封裝組件可以使用 GetParts() 加以檢查。 請參閱 Package API,以取得有關更新封裝組件的進一步資訊。
命名空間: Microsoft.SqlServer.Dac
組件: Microsoft.SqlServer.Dac.Extensions (在 Microsoft.SqlServer.Dac.Extensions.dll 中)
語法
'宣告
<ExtensionAttribute> _
Public Shared Sub UpdateModel ( _
dacPackage As DacPackage, _
newModel As TSqlModel, _
packageMetadata As PackageMetadata _
)
'用途
Dim dacPackage As DacPackage
Dim newModel As TSqlModel
Dim packageMetadata As PackageMetadata
dacPackage.UpdateModel(newModel, _
packageMetadata)
public static void UpdateModel(
this DacPackage dacPackage,
TSqlModel newModel,
PackageMetadata packageMetadata
)
[ExtensionAttribute]
public:
static void UpdateModel(
DacPackage^ dacPackage,
TSqlModel^ newModel,
PackageMetadata^ packageMetadata
)
static member UpdateModel :
dacPackage:DacPackage *
newModel:TSqlModel *
packageMetadata:PackageMetadata -> unit
public static function UpdateModel(
dacPackage : DacPackage,
newModel : TSqlModel,
packageMetadata : PackageMetadata
)
參數
- dacPackage
型別:Microsoft.SqlServer.Dac.DacPackage
要更新的 DacPackage
- newModel
型別:Microsoft.SqlServer.Dac.Model.TSqlModel
TSqlModel,表示要儲存至封裝的模型。
- packageMetadata
型別:Microsoft.SqlServer.Dac.PackageMetadata
PackageMetadata,描述要用於 DacPackage 的名稱、版本和描述,如果封裝資訊應該維持不變,則為 Null。
使用注意事項
在 Visual Basic 及 C# 中,您可以在任何型別 DacPackage 的物件上將這個方法做為執行個體方法呼叫。使用執行個體方法語法呼叫這個方法時,請省略第一個參數。如需詳細資訊,請參閱 b8020aae-374d-46a9-bcb7-8cc2390b93b6 或 175ce3ff-9bbf-4e64-8421-faeb81a0bb51。
例外狀況
| 例外狀況 | 條件 |
|---|---|
| DacServicesException | 如果 DacPackage 包含資料。 |
| DacServicesException | 如果將模型儲存到封裝時發生任何錯誤,包括驗證模型的錯誤。 |
| DacServicesException | 如果無法透過 ReadWrite 載入 dacPackage。 |
| ArgumentNullException | 如果 dacPackage 或 newModel 參數為 Null。 |