Abfrageausdrücke und eindeutige Ressourcennamen

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Die SMO-Modelle ( SQL Server Management Object) und SQL Server PowerShell-Snap-Ins verwenden zwei Typen von Ausdruckszeichenfolgen, die XPath-Ausdrücken ähneln. Bei Abfrageausdrücken handelt es sich um Zeichenfolgen, die eine Gruppe von Kriterien angeben, mit der ein oder mehrere Objekte in einer Objektmodellhierarchie aufgezählt werden. Ein eindeutiger Ressourcenname (Uniform Resource Name, URN) ist ein spezieller Typ einer Abfrageausdrucks-Zeichenfolge, der ein einzelnes Objekt eindeutig kennzeichnet.

Hinweis

Es gibt zwei SQL Server PowerShell-Module: SqlServer und SQLPS.

Das SqlServer-Modul ist das zu verwendende aktuelle PowerShell-Modul.

Das SQLPS-Modul ist zwar in der SQL Server-Installation (für die Abwärtskompatibilität) enthalten, wird jedoch nicht mehr aktualisiert.

Das SqlServer-Modul enthält aktualisierte Versionen der Cmdlets in SQLPS sowie neue Cmdlets zur Unterstützung der neuesten SQL-Funktionen.

Installieren Sie das SqlServer-Modul aus dem PowerShell-Katalog.

Weitere Informationen finden Sie unter SQL Server-PowerShell.

Syntax

  
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>)  

Argumente

Object
Gibt den Typ des Objekts an, der an diesem Knoten der Ausdruckszeichenfolge dargestellt wird. Jedes Objekt stellt eine Auflistungsklasse von diesen SMO-Objektmodellnamespaces dar:

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

Geben Sie z.B. „Server“ für die ServerCollection -Klasse und „Database“ für die DatabaseCollection -Klasse an.

@PropertyName
Gibt den Namen einer Eigenschaft der Klasse an, die mit dem in Objectangegebenen Objekt verknüpft ist. Dem Namen der Eigenschaft muss das Zeichen @ vorangestellt werden. Geben Sie z.B. @IsAnsiNull für die Database -Klasseneigenschaft IsAnsiNullan.

@BooleanPropertyName=true()
Listet alle Objekte auf, bei denen die angegebene boolesche Eigenschaft auf TRUE gesetzt ist.

@BooleanPropertyName=false()
Listet alle Objekte auf, bei denen die angegebene boolesche Eigenschaft auf FALSE gesetzt ist.

contains(@StringPropertyName, 'PatternString')
Listet alle Objekte auf, bei denen die angegebene Zeichenfolgeneigenschaft mindestens ein Vorkommen des Zeichensatzes enthält, der in 'PatternString' angegeben ist.

@StringPropertyName='PatternString'
Listet alle Objekte auf, bei denen der Wert der angegebenen Zeichenfolgeneigenschaft mit dem Zeichenmuster identisch ist, das in 'PatternString' angegeben ist.

@DatePropertyName= datetime('DateString')
Listet alle Objekte auf, bei denen der Wert der angegebenen Datumseigenschaft mit dem in 'DateString' angegebenen Datum übereinstimmt. DateString muss dem Format „yyyy-mm-dd hh:mi:ss.mmm“ entsprechen.

DateString-Komponente BESCHREIBUNG
yyyy Vierstellige Jahreszahl
MM Zweistellige Monatsangabe (01 bis 12)
dd Zweistellige Tagesangabe (01 bis 31)
hh Zweistellige Angabe der Stunde im 24-Stunden-Format (01 bis 23).
mi Zweistellige Minutenangabe (01 bis 59)
ss Zweistellige Sekundenangabe (01 bis 59)
mmm Anzahl der Millisekunden (001 bis 999)

Die in diesem Format angegebenen Daten können mit einem beliebigen Datumsformat, das in SQL Servergespeichert ist, verglichen werden.

is_null(@PropertyName)
Listet alle Objekte auf, bei denen die angegebene Eigenschaft den Wert NULL hat.

not(<PropertyExpression>)
Negiert den Evaluierungswert von PropertyExpressionund listet alle Objekte auf, die nicht der in PropertyExpressionangegebenen Bedingung entsprechen. Zum Beispiel listet not(contains(@Name, 'xyz')) alle Objekte auf, deren Name nicht die Zeichenfolge xyz aufweist.

Bemerkungen

Abfrageausdrücke sind Zeichenfolgen, die die Knoten in einer SMO-Modellhierarchie auflisten. Jeder Knoten besitzt einen Filterausdruck, der die Kriterien angibt, mit denen bestimmt werden kann, welche Objekte an diesem Knoten aufgelistet sind. Abfrageausdrücke werden anhand der XPath-Ausdruckssprache modelliert. Abfrageausdrücke implementieren eine kleine Teilmenge von Ausdrücken, die von XPath unterstützt werden, und weisen zudem einige Erweiterungen auf, die nicht in XPath zu finden sind. Bei XPath-Ausdrücken handelt es sich um Zeichenfolgen, die eine Gruppe von Kriterien angeben, mit der ein oder mehrere Tags in einem XML-Dokument aufgezählt werden. Weitere Informationen zu XPath finden Sie unter W3C XPath Language.

Abfrageausdrücke müssen mit einem absoluten Verweis auf das Serverobjekt beginnen. Relative Ausdrücke mit einem vorangestellten Schrägstrich (/) sind nicht zulässig. Die Sequenz der Objekte, die in einem Abfrageausdruck angegeben sind, muss der Hierarchie der Auflistungsobjekte im zugeordneten Objektmodell entsprechen. Ein Abfrageausdruck beispielsweise, der auf Objekte im Microsoft.SqlServer.Management.Smo-Namespace verweist, muss mit einem Serverknoten beginnen, gefolgt von einem Datenbankknoten usw.

Wenn für ein Objekt kein <Filterausdruck> angegeben wird, werden alle Objekte an diesem Knoten aufgelistet.

Uniform Resource Name (URN)

URNs sind eine Teilmenge von Abfrageausdrücken. Jeder URN bildet einen voll qualifizierten Verweis auf ein einzelnes Objekt. Ein typischer URN verwendet die Eigenschaft Name, um ein einzelnes Objekt an jedem Knoten zu identifizieren. Zum Beispiel verweist dieser URN auf eine bestimmte Spalte:

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

Beispiele

A. Auflisten von Objekten mit „false()“

Dieser Abfrageausdruck listet alle Datenbanken auf, für die das Attribut AutoClose in der Standardinstanz unter MyComputerauf "false" gesetzt wurde.

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

B. Auflisten von Objekten mit „contains“

Dieser Abfrageausdruck listet alle Datenbanken auf, bei denen die Groß-/Kleinschreibung nicht beachtet werden muss und deren Namen den Buchstaben „m“ enthalten.

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

C. Auflisten von Objekten mit „not“

Dieser Abfrageausdruck listet alle AdventureWorks2022 -Tabellen auf, die nicht Bestandteil des Production -Schemas sind und deren Name das Wort „History“ enthält:

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

D: Keine Angabe eines Filterausdrucks für den abschließenden Knoten

Dieser Abfrageausdruck listet alle Spalten in der AdventureWorks2022.Sales.SalesPerson -Tabelle auf:

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

E. Auflisten von Objekten mit „datetime“

Dieser Abfrageausdruck listet alle Tabellen auf, die in der AdventureWorks2022 -Datenbank zu einem bestimmten Zeitpunkt erstellt wurden:

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

F. Auflisten von Objekten mit „is_null“

Dieser Abfrageausdruck listet alle Tabellen in der AdventureWorks2022 -Datenbank auf, deren Eigenschaft für das Datum der letzten Änderung nicht NULL ist:

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

Weitere Informationen