Alter 命令 (TMSL)
適用于:SQL Server 2016 和更新版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium
改變現有的 物件,但不會改變其子系。 如果物件不存在,命令會引發錯誤。
針對目標更新使用 Alter 命令,例如在資料表上設定屬性,而不需要同時指定所有資料行。 此命令類似于 CreateOrReplace,但不需要提供完整的物件定義。
對於具有讀寫屬性的物件,如果您指定一個讀寫屬性,則必須使用新的或現有的值來指定所有屬性。 您可以使用 AMO PowerShell 來取得屬性清單。
要求
Alter 沒有任何屬性。 輸入包括要改變的物件,後面接著修改的物件定義。
下列範例說明變更資料分割物件上屬性的語法。 物件路徑會建立要透過父物件的名稱/值組來改變的資料分割物件。 第二個輸入是指定新屬性值的資料分割物件。
{
"alter": {
"object": {
"database": "\<database-name>",
"table": "\<table-name>",
"partition": "\<partition-name>"
},
"partition": {
"name": "\<new-partition-name>",
. . . << other properties
}
}
}
要求的結構會根據 物件而有所不同。 Alter 可以與下列任何物件搭配使用:
資料庫物件 (TMSL) 重新命名資料庫。
"alter": {
"object": {
"database": "\<database-name>"
},
"database": {
"name": "\<new-database-name>",
}
}
DataSources 物件 (TMSL) 重新命名連接,這是資料庫的子物件。
{
"alter":{
"object":{
"database":"AdventureWorksTabular1200",
"dataSource":"SqlServer localhost AdventureworksDW2016"
},
"dataSource":{
"name":"A new connection name"
}
}
}
Tables 物件 (TMSL) 請參閱下面的 範例 1 。
資料分割物件 (TMSL) 請參閱下面的 範例 2 。
Roles 物件 (TMSL) 變更角色物件上的屬性。
{
"alter":{
"object":{
"database":"AdventureWorksTabular1200",
"role":"DataReader"
},
"role":{
"name":"New Name"
}
}
}
回應
當命令成功時,傳回空的結果。 否則,會傳回 XMLA 例外狀況。
範例
下列範例示範您可以在 Management Studio 的 XMLA 視窗中執行的腳本,或在 AMO PowerShell 中的 Invoke-ASCmd Cmdlet 中做為輸入。
範例 1 - 此腳本會變更資料表上的 name 屬性。
{
"alter": {
"object": {
"database": "AdventureWorksDW2016",
"table": "DimDate"
},
"table": {
"name": "DimDate2"
}
}
}
假設本機具名實例 (實例名稱為 「tabular」) ,且具有改變腳本的 JSON 檔案,此命令會將資料表名稱從 DimDate 變更為 DimDate2:
invoke-ascmd -inputfile '\\my-computer\my-shared-folder\altertablename.json' -server 'localhost\Tabular'
範例 2 -- 此腳本會重新命名資料分割,例如,當目前年度變成前一年時結束。 請務必指定所有屬性。 如果您未指定 來源 ,它可能會中斷所有現有的分割區定義。
除非您正在建立、取代或改變數據源物件本身,否則腳本中所參考的任何資料來源 (,例如在下列資料分割腳本中,) 必須是模型中現有的 DataSource 物件。 如果您需要變更資料來源,請以個別步驟執行。
{
"alter": {
"object": {
"database": "InternetSales",
"table": "DimDate",
"partition": "CurrentYear"
},
"partition": {
"name": "Year2009",
"source": {
"query": "SELECT [dbo].[DimDate].* FROM [dbo].[DimDate] WHERE [dbo].[DimDate].CalendarYear = 2009",
"dataSource": "SqlServer localhost AdventureworksDW2016"
}
}
}
}
使用量 (端點)
此命令元素用於 Execute 方法的語句中, (XMLA) 透過 XMLA 端點呼叫,以下列方式公開:
SQL SERVER MANAGEMENT STUDIO (SSMS) 中的 XMLA 視窗
作為 invoke-ascmd PowerShell Cmdlet 的輸入檔
作為 SSIS 工作或SQL Server Agent作業的輸入
您無法從 SSMS 產生此命令的現成腳本。 相反地,您可以從範例開始,或自行撰寫。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應