Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I modelli SMO (SQL Server Management Object) e gli snap-in di SQL Server PowerShell usano due tipi di stringhe di espressione simili alle espressioni XPath. Le espressioni di query sono stringhe che specificano un set di criteri usati per enumerare uno o più oggetti in una gerarchia del modello a oggetti. Un URN (Uniform Resource Name) è un tipo specifico di stringa di espressione di query che identifica in modo univoco un singolo oggetto.
Sintassi
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>)
Argomenti
oggetto
Specifica il tipo di oggetto rappresentato in corrispondenza del nodo della stringa dell'espressione. Ogni oggetto rappresenta una classe di raccolta di questi spazi dei nomi del modello a oggetti SMO:
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 .
@
PropertyName
Specifica il nome di una delle proprietà della classe associata all'oggetto specificato in Object. Il nome della proprietà deve essere preceduto dal carattere @ . Ad esempio, specificare @IsAnsiNull per la proprietà Della classe DatabaseIsAnsiNull.
@
BooleanPropertyName=true()
Enumera tutti gli oggetti in cui la proprietà booleana specificata è impostata su TRUE.
@
BooleanPropertyName=false()
Enumera tutti gli oggetti in cui la proprietà booleana specificata è impostata su FALSE.
contains(@StringPropertyName, 'PatternString')
Enumera tutti gli oggetti in cui la proprietà stringa specificata contiene almeno un'occorrenza del set di caratteri specificato in 'PatternString'.
@
StringPropertyName='PatternString'
Enumera tutti gli oggetti in cui il valore della proprietà stringa specificata corrisponde esattamente al modello di caratteri specificato in 'PatternString'.
@
DatePropertyName= datetime('DateString')
Enumera tutti gli oggetti in cui il valore della proprietà data specificata corrisponde alla data specificata in 'DateString'.
DateString deve seguire il formato aaaa-mm-dd hh:mi:ss.mmm
| yyyy | Anno a quattro cifre. |
| millimetro | Mese a due cifre (da 01 a 12). |
| Dd | Data a due cifre (da 01 a 31). |
| Hh | Ora a due cifre con un orologio di 24 ore (da 01 a 23). |
| mi | Minuti a due cifre (da 01 a 59). |
| ß | Secondi a due cifre (da 01 a 59). |
| Mmm | Numero di millisecondi (da 001 a 999). |
Le date specificate in questo formato possono essere valutate in base a qualsiasi formato di data archiviato in SQL Server.
is_null(@PropertyName)
Enumera tutti gli oggetti in cui la proprietà specificata ha un valore NULL.
non(<EspressioneDiProprietà>)
Nega il valore di valutazione di PropertyExpression, enumerando tutti gli oggetti che non corrispondono alla condizione specificata in PropertyExpression. Ad esempio, not(contains(@Name, 'xyz')) enumera tutti gli oggetti che non hanno la stringa xyz nei nomi.
Osservazioni:
Le espressioni di query sono stringhe che enumerano i nodi in una gerarchia di modelli SMO. Ogni nodo ha un'espressione di filtro che specifica i criteri per determinare quali oggetti in tale nodo vengono enumerati. Le espressioni di query vengono modellate nel linguaggio delle espressioni XPath. Le espressioni di query implementano un piccolo subset delle espressioni supportate da XPath e includono anche alcune estensioni non disponibili in XPath. Le espressioni XPath sono stringhe che specificano un set di criteri utilizzati per enumerare uno o più tag in un documento XML. Per altre informazioni su XPath, vedere W3C XPath Language.
Le espressioni di query devono iniziare con un riferimento assoluto all'oggetto Server. Le espressioni relative con una barra iniziale / non sono consentite. La sequenza di oggetti specificati in un'espressione di query deve seguire la gerarchia degli oggetti raccolta nel modello a oggetti associato. Ad esempio, un'espressione di query che fa riferimento agli oggetti nello spazio dei nomi Microsoft.SqlServer.Management.Smo deve iniziare con un nodo Server seguito da un nodo Database e così via.
Se per un oggetto non viene specificato <FilterExpression>, vengono enumerati tutti gli oggetti in tale nodo.
Uniform Resource Names (URN)
Gli URN sono un subset di espressioni di query. Ogni URN costituisce un riferimento completo a un singolo oggetto. Un URN tipico usa la proprietà Name per identificare un singolo oggetto in ogni nodo. Ad esempio, questo URN fa riferimento a una colonna specifica:
Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks2012']/Table[@Name='SalesPerson' and @Schema='Sales']/Column[@Name='SalesPersonID']
Esempi
Un. Enumerazione di oggetti con false()
Questa espressione di query enumera tutti i database con l'attributo AutoClose impostato su false nell'istanza predefinita in MyComputer.
Server[@Name='MYCOMPUTER']/Database[@AutoClose=false()]
B. Enumerazione di oggetti tramite contiene
Questa espressione di query enumera tutti i database senza distinzione tra maiuscole e minuscole e ha il carattere 'm' nel nome.
Server[@Name='MYCOMPUTER']/Database[@CaseSensitive=false() and contains(@Name, 'm')]
C. Enumerazione di oggetti tramite not
Questa espressione di query enumera tutte le tabelle AdventureWorks2012 che non si trovano nello schema Production e contengono la parola Cronologia nel nome della tabella:
Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks2012']/Table[not(@Schema='Production') and contains(@Name, 'History')]
D. Non specificare un'espressione di filtro per il nodo finale
Questa espressione di query enumera tutte le colonne nella tabella AdventureWorks2012.Sales.SalesPerson :
Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks2012"]/Table[@Schema='Sales' and @Name='SalesPerson']/Columns
E. Enumerazione di oggetti tramite datetime
Questa espressione di query enumera tutte le tabelle create nel database AdventureWorks2012 in un momento specifico:
Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks2012"]/Table[@CreateDate=datetime('2008-03-21 19:49:32.647')]
F. Enumerazione di oggetti tramite is_null
Questa espressione di query enumera tutte le tabelle nel database AdventureWorks2012 che non dispongono di NULL per la data dell'ultima proprietà modificata:
Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks2012"]/Table[Not(is_null(@DateLastModified))]
Vedere anche
Invoke-PolicyEvaluation cmdlet
SQL Server Audit (motore di database)