Alter command (TMSL)
Berlaku untuk: SQL Server 2016 dan yang lebih baru Analysis Services Azure Analysis Services Fabric/Power BI Premium
Mengubah objek yang ada, tetapi bukan anak-anaknya. Jika objek tidak ada, perintah akan menimbulkan kesalahan.
Gunakan perintah Ubah untuk pembaruan yang ditargetkan, seperti mengatur properti pada tabel tanpa harus menentukan semua kolom juga. Perintah ini mirip dengan CreateOrReplace, tetapi tanpa persyaratan harus memberikan definisi objek lengkap.
Untuk objek yang memiliki properti baca-tulis, jika Anda menentukan satu properti baca-tulis, Anda harus menentukan semuanya, menggunakan nilai baru atau yang sudah ada. Anda bisa menggunakan AMO PowerShell untuk mendapatkan daftar properti.
Minta
Alter tidak memiliki atribut apa pun. Input mencakup objek yang akan diubah, diikuti oleh definisi objek yang dimodifikasi.
Contoh berikut mengilustrasikan sintaks untuk mengubah properti pada objek partisi. Jalur objek menetapkan objek partisi mana yang akan diubah melalui pasangan nama-nilai objek induk. Input kedua adalah objek partisi yang menentukan nilai properti baru.
{
"alter": {
"object": {
"database": "\<database-name>",
"table": "\<table-name>",
"partition": "\<partition-name>"
},
"partition": {
"name": "\<new-partition-name>",
. . . << other properties
}
}
}
Struktur permintaan bervariasi berdasarkan objek . Ubah dapat digunakan dengan salah satu objek berikut:
Objek database (TMSL) Mengganti nama database.
"alter": {
"object": {
"database": "\<database-name>"
},
"database": {
"name": "\<new-database-name>",
}
}
Objek DataSources (TMSL) Ganti nama koneksi, yang merupakan objek turunan database.
{
"alter":{
"object":{
"database":"AdventureWorksTabular1200",
"dataSource":"SqlServer localhost AdventureworksDW2016"
},
"dataSource":{
"name":"A new connection name"
}
}
}
Objek tabel (TMSL) Lihat Contoh 1 di bawah ini.
Objek partisi (TMSL) Lihat Contoh 2 di bawah ini.
Objek peran (TMSL) Mengubah properti pada objek peran.
{
"alter":{
"object":{
"database":"AdventureWorksTabular1200",
"role":"DataReader"
},
"role":{
"name":"New Name"
}
}
}
Respons
Mengembalikan hasil kosong saat perintah berhasil. Jika tidak, pengecualian XMLA dikembalikan.
Contoh
Contoh berikut menunjukkan skrip yang dapat Anda jalankan di jendela XMLA di Management Studio atau gunakan sebagai input dalam cmdlet Invoke-ASCmd di AMO PowerShell.
Contoh 1 - Skrip ini mengubah properti nama pada tabel.
{
"alter": {
"object": {
"database": "AdventureWorksDW2016",
"table": "DimDate"
},
"table": {
"name": "DimDate2"
}
}
}
Dengan asumsi instans bernama lokal (nama instans adalah "tabular") dan file JSON dengan skrip perubahan, perintah ini mengubah nama tabel dari DimDate menjadi DimDate2:
invoke-ascmd -inputfile '\\my-computer\my-shared-folder\altertablename.json' -server 'localhost\Tabular'
Contoh 2 -- Skrip ini mengganti nama partisi, misalnya pada akhir tahun ketika tahun saat ini menjadi tahun sebelumnya. Pastikan untuk menentukan semua properti. Jika Anda membiarkan sumber tidak ditentukan, itu dapat merusak semua definisi partisi yang ada.
Kecuali Anda membuat, mengganti, atau mengubah objek sumber data itu sendiri, sumber data apa pun yang direferensikan dalam skrip Anda (seperti dalam skrip partisi di bawah) harus menjadi objek DataSource yang ada dalam model Anda. Jika Anda perlu mengubah sumber data, lakukan sebagai langkah terpisah.
{
"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"
}
}
}
}
Penggunaan (titik akhir)
Elemen perintah ini digunakan dalam pernyataan panggilan Metode Eksekusi (XMLA) melalui titik akhir XMLA, diekspos dengan cara berikut:
Sebagai jendela XMLA di SQL Server Management Studio (SSMS)
Sebagai file input ke cmdlet PowerShell invoke-ascmd
Sebagai input ke tugas SSIS atau pekerjaan SQL Server Agent
Anda tidak dapat membuat skrip siap pakai untuk perintah ini dari SQL Server Management Directory. Sebagai gantinya, Anda dapat memulai dengan contoh atau menulis sendiri.