Espressioni di query e Uniform Resource NameQuery Expressions and Uniform Resource Names

I modelli SMO ( SQL ServerSQL Server Management Object) e gli snap-in PowerShell per SQL ServerSQL Server usano due tipi di stringhe di espressione simili alle espressioni XPath.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. Le espressioni di query sono stringhe che specificano un set di criteri utilizzato per enumerare uno o più oggetti in una gerarchia del modello a oggetti.Query expressions are strings that specify a set of criteria used to enumerate one or more objects in an object model hierarchy. Un Unique Resource Name (URN) è un tipo specifico di stringa di espressione di query che identifica un singolo oggetto in modo univoco.A Uniform Resource Name (URN) is a specific type of query expression string that uniquely identifies a single object.

SintassiSyntax


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

ArgomentiArguments

OggettoObject
Specifica il tipo di oggetto che è rappresentato in corrispondenza del nodo della stringa di espressione.Specifies the type of object that is represented at that node of the expression string. Ciascun oggetto rappresenta una classe di raccolte dai seguenti spazi dei nomi del modello a oggetti SMO: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

Ad esempio, specificare Server per la classe ServerCollection , Database per la classe DatabaseCollection .For example, specify Server for the ServerCollection class, Database for the DatabaseCollection class.

@PropertyName@PropertyName
Specifica il nome di una delle proprietà della classe associato all'oggetto specificato in Object.Specifies the name of one of the properties of the class that is associated with the object specified in Object. Il nome della proprietà deve essere preceduto dal carattere @.The name of the property must be prefixed with the @ character. Ad esempio, specificare @IsAnsiNull per la proprietà IsAnsiNull della classe Database.For example, specify @IsAnsiNull for the Database class property IsAnsiNull.

@BooleanPropertyName=true()@BooleanPropertyName=true()
Enumera tutti gli oggetti in cui la proprietà Boolean specificata è impostata su TRUE.Enumerates all objects where the specified Boolean property is set to TRUE.

@BooleanPropertyName=false()@BooleanPropertyName=false()
Enumera tutti gli oggetti in cui la proprietà Boolean specificata è impostata su FALSE.Enumerates all objects where the specified Boolean property is set to FALSE.

contains(@StringPropertyName, 'PatternString')contains(@StringPropertyName, 'PatternString')
Enumera tutti gli oggetti in cui la proprietà della stringa specificata contiene almeno un'occorrenza del set di caratteri specificato in 'PatternString'.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'
Enumera tutti gli oggetti in cui il valore della proprietà della stringa specificata è esattamente uguale al modello di caratteri specificato in 'PatternString'.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')
Enumera tutti gli oggetti in cui il valore della proprietà Date specificata corrisponde alla data specificata in 'DateString'.Enumerates all objects where the value of the specified date property matches the date that is specified in 'DateString'. DateString deve essere nel formato aaaa-mm-gg oo:mi:ss.mmmDateString must follow the format yyyy-mm-dd hh:mi:ss.mmm

aaaayyyy Anno espresso a quattro cifre.Four digit year.
mmmm Mese a due cifre (da 01 a 12)Two digit month (01 through 12).
ggdd Data a due cifre (da 01 a 31)Two digit date (01 through 31).
hhhh Ora a 2 cifre nel formato a 24 ore (da 01 a 23)Two digit hour using a 24 hour clock (01 through 23).
mimi Minuti a due cifre (da 01 a 59)Two digit minutes (01 through 59).
ssss Secondi a due cifre (da 01 a 59)Two digit seconds (01 through 59).
mmmmmm Numero di millisecondi (da 001 a 999).Number of milliseconds (001 through 999).

Le date specificate in questo formato possono essere valutate rispetto a qualsiasi formato della data archiviato in SQL ServerSQL Server.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)
Enumera tutti gli oggetti in cui la proprietà specificata è impostata su NULL.Enumerates all objects where the specified property has a value of NULL.

not(<PropertyExpression>)not(<PropertyExpression>)
Nega il valore della valutazione della PropertyExpression, enumerando tutti gli oggetti che non corrispondono alla condizione specificata nella PropertyExpression.Negates the evaluation value of the PropertyExpression, enumerating all objects that do not match the condition specified in PropertyExpression. Ad esempio, not(contains(@Name, 'xyz')) enumera tutti gli oggetti i cui nomi non contengono la stringa xyz.For example, not(contains(@Name, 'xyz')) enumerates all objects that do not have the string xyz in their names.

OsservazioniRemarks

Le espressioni di query sono stringhe che enumerano i nodi in una gerarchia del modello SMO.Query expressions are strings that enumerate the nodes in an SMO model hierarchy. Ciascun nodo dispone di un'espressione di filtro che specifica i criteri per determinare quali oggetti in corrispondenza di un dato nodo sono enumerati.Each node has a filter expression that specifies the criteria for determining which objects at that node are enumerated. Le espressioni di query vengono modellate sul linguaggio delle espressioni XPath.Query expressions are modeled on the XPath expression language. Le espressioni di query implementano un piccolo subset delle espressioni che sono supportate da XPath; inoltre dispongono di alcune estensioni che non si trovano in XPath.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. Le espressioni XPath sono stringhe che specificano un set di criteri che vengono utilizzati per enumerare uno o più tag in un documento XML.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. Per altre informazioni su XPath, vedere W3C XPath Language.For more information about XPath, see W3C XPath Language.

Le espressioni di query devono iniziare con un riferimento assoluto all'oggetto Server.Query expressions must start with an absolute reference to the Server object. Le espressioni relative con un carattere "/" iniziale non sono consentite.Relative expressions with a leading / are not allowed. La sequenza di oggetti che sono specificati in un'espressione di query deve seguire la gerarchia di oggetti Collection nel modello a oggetti associato.The sequence of objects that are specified in a query expression must follow the hierarchy of collection objects in the associated object model. Ad esempio, un'espressione di query che fa riferimento a oggetti nello spazio dei nomi Microsoft.SqlServer.Management.Smo deve iniziare con un nodo Server seguito da un nodo Database e così via.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.

Se non viene specificata una <FilterExpression> per un oggetto, vengono enumerati tutti gli oggetti del nodo.If a <FilterExpression> is not specified for an object, all the objects at that node are enumerated.

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

Gli URN sono un subset di espressioni di query.URNs are a subset of query expressions. Ciascun URN rappresenta un riferimento completo a un oggetto singolo.Each URN forms a fully-qualified reference to a single object. Il tipico URN utilizza la proprietà Name per identificare un singolo oggetto in corrispondenza di ciascun nodo.A typical URN uses the Name property to identify a single object at each node. Ad esempio, questo URN si riferisce a una colonna specifica:For example, this URN refers to a specific column:

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

EsempiExamples

A.A. Enumerazione di oggetti utilizzando false()Enumerating objects using false()

Questa espressione di query enumera tutti i database il cui attributo AutoClose è impostato su False nell'istanza predefinita in MyComputer.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. Enumerazione di oggetti utilizzando containsEnumerating objects using contains

Questa espressione di query enumera tutti i database per quali non viene fatta distinzione tra maiuscole e minuscole e i cui nomi contengono il carattere "m".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. Enumerazione di oggetti utilizzando notEnumerating objects using not

Questa espressione di query enumera tutte le tabelle di AdventureWorks2012AdventureWorks2012 che non sono nello schema Production e i cui nomi contengono la parola History: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. Mancata specifica di un'espressione di filtro per il nodo finaleNot supplying a filter expression for the final node

Questa espressione di query enumera tutte le colonne nella tabella AdventureWorks2012.Sales.SalesPerson :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. Enumerazione di oggetti utilizzando datetimeEnumerating objects using datetime

Questa espressione di query enumera tutte le tabelle create nel database AdventureWorks2012AdventureWorks2012 a un'ora specifica: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. Enumerazione di oggetti utilizzando is_nullEnumerating objects using is_null

Questa espressione di query enumera tutte le tabelle nel database AdventureWorks2012AdventureWorks2012 le cui proprietà di data ultima modifica non sono impostate su NULL: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))]  

Vedere ancheSee Also

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