Bagikan melalui


Ekspresi Kueri dan Nama Sumber Daya Seragam

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Model SQL Server Management Object (SMO) dan snap-in PowerShell SQL Server menggunakan dua jenis string ekspresi yang mirip dengan ekspresi XPath. Ekspresi kueri adalah string yang menentukan sekumpulan kriteria yang digunakan untuk menghitung satu atau beberapa objek dalam hierarki model objek. Nama Sumber Daya Seragam (URN) adalah jenis string ekspresi kueri tertentu yang secara unik mengidentifikasi satu objek.

Catatan

Ada dua modul PowerShell SQL Server; SqlServer dan SQLPS.

Modul SqlServer adalah modul PowerShell saat ini yang akan digunakan.

Modul SQLPS disertakan dengan penginstalan SQL Server (untuk kompatibilitas mundur) tetapi tidak lagi diperbarui.

Modul SqlServer berisi versi cmdlet yang diperbarui di SQLPS dan menyertakan cmdlet baru untuk mendukung fitur SQL terbaru.

Instal modul SqlServer dari Galeri PowerShell.

Untuk informasi selengkapnya, lihat SQL Server PowerShell.

Sintaks

  
Object1[<FilterExpression1>]/ ... /ObjectN[<FilterExpressionN>]  
  
<FilterExpression>::=  
<PropertyExpression> [and <PropertyExpression>][...n]  
  
<PropertyExpression>::=  
      @BooleanPropertyName=true()  
 | @BooleanPropertyName=false()  
 | contains(@StringPropertyName, 'PatternString')  
  | @StringPropertyName='String'  
 | @DatePropertyName=datetime('DateString')  
 | is_null(@PropertyName)  
 | not(<PropertyExpression>)  

Argumen

Objek
Menentukan jenis objek yang diwakili pada simpul string ekspresi tersebut. Setiap objek mewakili kelas koleksi dari namespace model objek SMO ini:

Microsoft.SqlServer.Management.Smo

Microsoft.SqlServer.Management.Smo.Agent

Microsoft.SqlServer.Management.Smo.Broker

Microsoft.SqlServer.Management.Smo.Mail

Microsoft.SqlServer.Management.Dmf

Microsoft.SqlServer.Management.Facets

Microsoft.SqlServer.Management.RegisteredServers

Microsoft.SqlServer.Management.Smo.RegSvrEnum

Misalnya, tentukan Server untuk kelas ServerCollection , Database untuk kelas DatabaseCollection .

@PropertyName
Menentukan nama salah satu properti kelas yang terkait dengan objek yang ditentukan dalam Objek. Nama properti harus diawali dengan karakter @. Misalnya, tentukan @IsAnsiNull untuk properti kelas Database IsAnsiNull.

@BooleanPropertyName=true()
Menghitung semua objek di mana properti Boolean yang ditentukan diatur ke TRUE.

@BooleanPropertyName=false()
Menghitung semua objek di mana properti Boolean yang ditentukan diatur ke FALSE.

contains(@StringPropertyName, 'PatternString')
Menghitung semua objek di mana properti string yang ditentukan berisi setidaknya satu kemunculan kumpulan karakter yang ditentukan dalam 'PatternString'.

@StringPropertyName='PatternString'
Menghitung semua objek di mana nilai properti string yang ditentukan sama persis dengan pola karakter yang ditentukan dalam 'PatternString'.

@DatePropertyName= datetime('DateString')
Menghitung semua objek di mana nilai properti tanggal yang ditentukan cocok dengan tanggal yang ditentukan dalam 'DateString'. DateString harus mengikuti format yyyy-mm-dd hh:mi:ss.mmm.

Komponen DateString Deskripsi
yyyy Empat digit tahun.
mm Bulan dua digit (01 hingga 12).
dd Tanggal dua digit (01 hingga 31).
hh Dua digit jam menggunakan jam 24 jam (01 hingga 23).
mi Dua digit menit (01 hingga 59).
ss Dua digit detik (01 hingga 59).
mmm Jumlah milidetik (001 hingga 999).

Tanggal yang ditentukan dalam format ini dapat dievaluasi terhadap format tanggal apa pun yang disimpan di SQL Server.

is_null(@PropertyName)
Menghitung semua objek di mana properti yang ditentukan memiliki nilai NULL.

not(<PropertyExpression>)
Meniadakan nilai evaluasi PropertyExpression, menghitung semua objek yang tidak cocok dengan kondisi yang ditentukan dalam PropertyExpression. Misalnya, not(contains(@Name, 'xyz')) menghitung semua objek yang tidak memiliki string xyz dalam namanya.

Keterangan

Ekspresi kueri adalah string yang menghitung simpul dalam hierarki model SMO. Setiap simpul memiliki ekspresi filter yang menentukan kriteria untuk menentukan objek mana di simpul tersebut yang dijumlahkan. Ekspresi kueri dimodelkan pada bahasa ekspresi XPath. Ekspresi kueri mengimplementasikan subset kecil ekspresi yang didukung oleh XPath, dan juga memiliki beberapa ekstensi yang tidak ditemukan di XPath. Ekspresi XPath adalah string yang menentukan serangkaian kriteria yang digunakan untuk menghitung satu atau beberapa tag dalam dokumen XML. Untuk informasi selengkapnya tentang XPath, lihat Bahasa W3C XPath.

Ekspresi kueri harus dimulai dengan referensi absolut ke objek Server. Ekspresi relatif dengan di depan/ tidak diizinkan. Urutan objek yang ditentukan dalam ekspresi kueri harus mengikuti hierarki objek koleksi dalam model objek terkait. Misalnya, ekspresi kueri yang mereferensikan objek di namespace Microsoft.SqlServer.Management.Smo harus dimulai dengan simpul Server diikuti oleh simpul Database, dan sebagainya.

<Jika FilterExpression> tidak ditentukan untuk objek, semua objek pada simpul tersebut dijumlahkan.

Nama Sumber Daya Seragam (URN)

URL adalah subset ekspresi kueri. Setiap URN membentuk referensi yang sepenuhnya memenuhi syarat ke satu objek. URN umum menggunakan properti Nama untuk mengidentifikasi satu objek di setiap simpul. Misalnya, URN ini mengacu pada kolom tertentu:

Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks2022']/Table[@Name='SalesPerson' and @Schema='Sales']/Column[@Name='SalesPersonID']  

Contoh

J. Menghitung objek menggunakan false()

Ekspresi kueri ini menghitung semua database yang memiliki atribut AutoClose yang diatur ke false dalam instans default di MyComputer.

Server[@Name='MYCOMPUTER']/Database[@AutoClose=false()]  

B. Menghitung objek menggunakan contains

Ekspresi kueri ini menghitung semua database yang tidak peka huruf besar/kecil dan memiliki karakter 'm' dalam namanya.

Server[@Name='MYCOMPUTER']/Database[@CaseSensitive=false() and contains(@Name, 'm')]   

C. Menghitung objek menggunakan tidak

Ekspresi kueri ini menghitung semua AdventureWorks2022 tabel yang tidak ada dalam skema Produksi dan berisi kata Riwayat dalam nama tabel:

Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks2022']/Table[not(@Schema='Production') and contains(@Name, 'History')]  

D. Tidak menyediakan ekspresi filter untuk simpul akhir

Ekspresi kueri ini menghitung semua kolom dalam tabel AdventureWorks2022.Sales.SalesPerson :

Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks2022"]/Table[@Schema='Sales' and @Name='SalesPerson']/Columns  

E. Menghitung objek menggunakan tanggalwaktu

Ekspresi kueri ini menghitung semua tabel yang dibuat dalam database pada AdventureWorks2022 waktu tertentu:

Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks2022"]/Table[@CreateDate=datetime('2008-03-21 19:49:32.647')]  

F. Menghitung objek menggunakan is_null

Ekspresi kueri ini menghitung semua tabel dalam AdventureWorks2022 database yang tidak memiliki NULL untuk properti yang terakhir diubah tanggalnya:

Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks2022"]/Table[Not(is_null(@DateLastModified))]  

Lihat Juga