Abfrageausdrücke und eindeutige RessourcennamenQuery Expressions and Uniform Resource Names

Dieses Thema gilt für: JaSQL ServerJaAzure SQL-DatenbankJaAzure SQL Data Warehouse Ja Parallel DatawarehouseTHIS TOPIC APPLIES TO: yesSQL ServeryesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Die SMO-Modelle ( SQL ServerSQL Server Management Object) und SQL ServerSQL Server PowerShell-Snap-Ins verwenden zwei Typen von Ausdruckszeichenfolgen, die XPath-Ausdrücken ähneln.The SQL ServerSQL Server Management Object (SMO) models and SQL ServerSQL Server PowerShell snap-ins use two types of expression strings that are similar to XPath expressions. 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.Query expressions are strings that specify a set of criteria used to enumerate one or more objects in an object model hierarchy. Ein eindeutiger Ressourcenname (Uniform Resource Name, URN) ist ein spezieller Typ einer Abfrageausdrucks-Zeichenfolge, der ein einzelnes Objekt eindeutig kennzeichnet.A Uniform Resource Name (URN) is a specific type of query expression string that uniquely identifies a single object.

Hinweis

Es gibt zwei SQL Server PowerShell-Module: SqlServer und SQLPS.There are two SQL Server PowerShell modules; SqlServer and SQLPS. Das SQLPS-Modul ist zwar in der SQL Server-Installation (für die Abwärtskompatibilität) enthalten, wird jedoch nicht mehr aktualisiert.The SQLPS module is included with the SQL Server installation (for backwards compatibility), but is no longer being updated. Das SqlServer-Modul ist das aktuellste PowerShell-Modul.The most up-to-date PowerShell module is the SqlServer module. Das SqlServer-Modul enthält aktualisierte Versionen der Cmdlets in SQLPS sowie neue Cmdlets zur Unterstützung der neuesten SQL-Funktionen.The SqlServer module contains updated versions of the cmdlets in SQLPS, and also includes new cmdlets to support the latest SQL features.
Vorherige Versionen des SqlServer-Moduls waren in SQL Server Management Studio (SSMS) enthalten, allerdings nur in den Versionen 16.x.Previous versions of the SqlServer module were included with SQL Server Management Studio (SSMS), but only with the 16.x versions of SSMS. Das SqlServer-Modul muss über den PowerShell-Katalog installiert werden, damit PowerShell mit SSMS 17.0 und höher verwendet werden kann.To use PowerShell with SSMS 17.0 and later, the SqlServer module must be installed from the PowerShell Gallery. Informationen zur Installation des SqlServer-Moduls finden Sie unter Installieren von SQL Server PowerShell.To install the SqlServer module, see Install SQL Server PowerShell.

SyntaxSyntax


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

ArgumenteArguments

ObjektObject
Gibt den Typ des Objekts an, der an diesem Knoten der Ausdruckszeichenfolge dargestellt wird.Specifies the type of object that is represented at that node of the expression string. Jedes Objekt stellt eine Auflistungsklasse von diesen SMO-Objektmodellnamespaces dar:Each object represents a collection class from these SMO object model namespaces:

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.For example, specify Server for the ServerCollection class, Database for the DatabaseCollection class.

@PropertyName@PropertyName
Gibt den Namen einer Eigenschaft der Klasse an, die mit dem in Objectangegebenen Objekt verknüpft ist.Specifies the name of one of the properties of the class that is associated with the object specified in Object. Dem Namen der Eigenschaft muss das Zeichen @ vorangestellt werden.The name of the property must be prefixed with the @ character. Geben Sie beispielsweise @IsAnsiNull für die Datenbank-Klasseneigenschaft IsAnsiNull an.For example, specify @IsAnsiNull for the Database class property IsAnsiNull.

@BooleanPropertyName=true()@BooleanPropertyName=true()
Listet alle Objekte auf, bei denen die angegebene boolesche Eigenschaft auf TRUE gesetzt ist.Enumerates all objects where the specified Boolean property is set to TRUE.

@BooleanPropertyName=false()@BooleanPropertyName=false()
Listet alle Objekte auf, bei denen die angegebene boolesche Eigenschaft auf FALSE gesetzt ist.Enumerates all objects where the specified Boolean property is set to FALSE.

contains(@StringPropertyName, 'PatternString')contains(@StringPropertyName, 'PatternString')
Listet alle Objekte auf, bei denen die angegebene Zeichenfolgeneigenschaft mindestens ein Vorkommen des Zeichensatzes enthält, der in 'PatternString' angegeben ist.Enumerates all objects where the specified string property contains at least one occurrence of the set of characters that is specified in 'PatternString'.

@StringPropertyName='PatternString'@StringPropertyName='PatternString'
Listet alle Objekte auf, bei denen der Wert der angegebenen Zeichenfolgeneigenschaft mit dem Zeichenmuster identisch ist, das in 'PatternString' angegeben ist.Enumerates all objects where the value of the specified string property is exactly the same as the character pattern that is specified in 'PatternString'.

@DatePropertyName= datetime('DateString')@DatePropertyName= datetime('DateString')
Listet alle Objekte auf, bei denen der Wert der angegebenen Datumseigenschaft mit dem in 'DateString' angegebenen Datum übereinstimmt.Enumerates all objects where the value of the specified date property matches the date that is specified in 'DateString'. DateString muss dem Format „yyyy-mm-dd hh:mi:ss.mmm“ entsprechen.DateString must follow the format yyyy-mm-dd hh:mi:ss.mmm

yyyyyyyy Vierstellige JahreszahlFour digit year.
MMmm Zweistellige Monatsangabe (01 bis 12)Two digit month (01 through 12).
dddd Zweistellige Tagesangabe (01 bis 31)Two digit date (01 through 31).
hhhh Zweistellige Angabe der Stunde im 24-Stunden-Format (01 bis 23).Two digit hour using a 24-hour clock (01 through 23).
mimi Zweistellige Minutenangabe (01 bis 59)Two digit minutes (01 through 59).
ssss Zweistellige Sekundenangabe (01 bis 59)Two digit seconds (01 through 59).
mmmmmm Anzahl der Millisekunden (001 bis 999)Number of milliseconds (001 through 999).

Die in diesem Format angegebenen Daten können mit einem beliebigen Datumsformat, das in SQL ServerSQL Servergespeichert ist, verglichen werden.The dates that are specified in this format can be evaluated against any date format that is stored in SQL ServerSQL Server.

is_null(@PropertyName)is_null(@PropertyName)
Listet alle Objekte auf, bei denen die angegebene Eigenschaft den Wert NULL hat.Enumerates all objects where the specified property has a value of NULL.

Keine (<PropertyExpression>)not(<PropertyExpression>)
Negiert den Evaluierungswert von PropertyExpressionund listet alle Objekte auf, die nicht der in PropertyExpressionangegebenen Bedingung entsprechen.Negates the evaluation value of the PropertyExpression, enumerating all objects that do not match the condition specified in PropertyExpression. Zum Beispiel listet not(contains(@Name, 'xyz')) alle Objekte auf, deren Name nicht die Zeichenfolge xyz aufweist.For example, not(contains(@Name, 'xyz')) enumerates all objects that do not have the string xyz in their names.

RemarksRemarks

Abfrageausdrücke sind Zeichenfolgen, die die Knoten in einer SMO-Modellhierarchie auflisten.Query expressions are strings that enumerate the nodes in an SMO model hierarchy. Jeder Knoten besitzt einen Filterausdruck, der die Kriterien angibt, mit denen bestimmt werden kann, welche Objekte an diesem Knoten aufgelistet sind.Each node has a filter expression that specifies the criteria for determining which objects at that node are enumerated. Abfrageausdrücke werden anhand der XPath-Ausdruckssprache modelliert.Query expressions are modeled on the XPath expression language. 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.Query expressions implement a small subset of the expressions that are supported by XPath, and also have some extensions that are not found in XPath. 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.XPath expressions are strings that specify a set of criteria that are used to enumerate one or more of the tags in an XML document. Weitere Informationen zu XPath finden Sie unter W3C XPath Language.For more information about XPath, see W3C XPath Language.

Abfrageausdrücke müssen mit einem absoluten Verweis auf das Serverobjekt beginnen.Query expressions must start with an absolute reference to the Server object. Relative Ausdrücke mit einem vorangestellten Schrägstrich (/) sind nicht zulässig.Relative expressions with a leading / are not allowed. Die Sequenz der Objekte, die in einem Abfrageausdruck angegeben sind, muss der Hierarchie der Auflistungsobjekte im zugeordneten Objektmodell entsprechen.The sequence of objects that are specified in a query expression must follow the hierarchy of collection objects in the associated object model. Ein Abfrageausdruck beispielsweise, der auf Objekte im Microsoft.SqlServer.Management.Smo-Namespace verweist, muss mit einem Serverknoten beginnen, gefolgt von einem Datenbankknoten usw.For example, a query expression that references objects in the Microsoft.SqlServer.Management.Smo namespace must start with a Server node followed by a Database node, and so on.

Wenn für ein Objekt kein Wert für <<FilterExpression angegeben wird, werden alle Objekte an diesem Knoten aufgelistet.If a <FilterExpression> is not specified for an object, all the objects at that node are enumerated.

Uniform Resource Name (URN)Uniform Resource Names (URN)

URNs sind eine Teilmenge von Abfrageausdrücken.URNs are a subset of query expressions. Jeder URN bildet einen voll qualifizierten Verweis auf ein einzelnes Objekt.Each URN forms a fully-qualified reference to a single object. Ein typischer URN verwendet die Eigenschaft Name, um ein einzelnes Objekt an jedem Knoten zu identifizieren.A typical URN uses the Name property to identify a single object at each node. Zum Beispiel verweist dieser URN auf eine bestimmte Spalte:For example, this URN refers to a specific column:

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

BeispieleExamples

A.A. Auflisten von Objekten mit „false()“Enumerating objects using false()

Dieser Abfrageausdruck listet alle Datenbanken auf, für die das Attribut AutoClose in der Standardinstanz unter MyComputerauf "false" gesetzt wurde.This query expression enumerates all the databases that have the AutoClose attribute set to false in the default instance on MyComputer.

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

B.B. Auflisten von Objekten mit „contains“Enumerating objects using contains

Dieser Abfrageausdruck listet alle Datenbanken auf, bei denen die Groß-/Kleinschreibung nicht beachtet werden muss und deren Namen den Buchstaben „m“ enthalten.This query expression enumerates all the databases that are case-insensitive and have the character 'm' in their name.

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

C.C. Auflisten von Objekten mit „not“Enumerating objects using not

Dieser Abfrageausdruck listet alle AdventureWorks2012AdventureWorks2012 -Tabellen auf, die nicht Bestandteil des Production -Schemas sind und deren Name das Wort „History“ enthält:This query expression enumerates all of AdventureWorks2012AdventureWorks2012 tables that are not in the Production schema and contain the word History in the table name:

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

D.D. Keine Angabe eines Filterausdrucks für den abschließenden KnotenNot supplying a filter expression for the final node

Dieser Abfrageausdruck listet alle Spalten in der AdventureWorks2012.Sales.SalesPerson -Tabelle auf:This query expression enumerates all the columns in the AdventureWorks2012.Sales.SalesPerson table:

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

E.E. Auflisten von Objekten mit „datetime“Enumerating objects using datetime

Dieser Abfrageausdruck listet alle Tabellen auf, die in der AdventureWorks2012AdventureWorks2012 -Datenbank zu einem bestimmten Zeitpunkt erstellt wurden:This query expression enumerates all the tables that are created in the AdventureWorks2012AdventureWorks2012 database at a specific time:

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

F.F. Auflisten von Objekten mit „is_null“Enumerating objects using is_null

Dieser Abfrageausdruck listet alle Tabellen in der AdventureWorks2012AdventureWorks2012 -Datenbank auf, deren Eigenschaft für das Datum der letzten Änderung nicht NULL ist:This query expression enumerates all the tables in the AdventureWorks2012AdventureWorks2012 database that do not have NULL for their date last modified property:

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

Weitere Informationen finden Sie unterSee Also

Invoke-PolicyEvaluation-Cmdlet Invoke-PolicyEvaluation cmdlet
SQL Server Audit (Datenbankmodul)SQL Server Audit (Database Engine)