Condividi tramite


Utilizzo dei cmdlet di SQL Server

I cmdlet di Windows PowerShell sono comandi a una sola funzione che in genere hanno una convenzione di denominazione verbo-nome, ad esempio Get-Help o Set-MachineName. Il provider SQL Server per Windows PowerShell fornisce cmdlet specifici di SQL Server.

Cmdlet di SQL Server

In SQL Server 2008 è implementato un numero ridotto di cmdlet di Windows PowerShell.

Nell'ambiente di Windows PowerShell il cmdlet Get-Help fornisce informazioni della Guida per ciascun cmdlet. Get-Help restituisce informazioni come la sintassi, le definizioni dei parametri, i tipi di input e di output e una descrizione dell'azione eseguita dal cmdlet.

In questi esempi vengono restituiti informazioni di base, informazioni complete, il diagramma della sintassi, i parametri e gli esempi del cmdlet SQL ServerEncode-SqlName:

get-help "Encode-SqlName"
get-help "Encode-SqlName" -Full
get-help "Encode-SqlName" -Syntax
get-help "Encode-SqlName" -Parameter *
get-help "Encode-SqlName" -Examples

Invoke-Sqlcmd

Invoke-Sqlcmd supporta l'esecuzione di script o comandi sqlcmd che contengono istruzioni Transact-SQL o XQuery. Può accettare l'input di sqlcmd come parametro di input della stringa di caratteri o come nome di un file script da aprire. Per ulteriori informazioni, vedere Utilizzo del cmdlet Invoke-Sqlcmd.

Invoke-PolicyEvaluation

Invoke-PolicyEvaluation indica se un set di destinazioni di oggetti SQL Server è conforme alle condizioni definite nei criteri di gestione basata su criteri. Facoltativamente, il cmdlet può essere utilizzato per riconfigurare qualsiasi opzione impostabile negli oggetti di destinazione che non sono conformi alle condizioni dei criteri. Per ulteriori informazioni, vedere Utilizzo del cmdlet Invoke-PolicyEvaluation.

Codifica e decodifica di identificatori di SLQ Server

Gli identificatori sono i nomi degli oggetti di SQL Server. Gli identificatori di SQL Server supportano una gamma di caratteri più ampia rispetto al linguaggio di Windows PowerShell. Gli identificatori del Motore di database inseriti tra parentesi o tra virgolette presentano poche restrizioni sui caratteri utilizzati nei nomi. Per alcuni dei caratteri utilizzati negli identificatori inseriti tra parentesi o tra virgolette non può essere utilizzato l'apice inverso come carattere di escape di Windows PowerShell. Tali caratteri possono provocare problemi durante l'utilizzo del provider SQL Server.

Il cmdlet Encode-SqlName accetta come input un identificatore di SQL Server e riformatta tutti i caratteri non supportati dal linguaggio di Windows PowerShell con una rappresentazione funzionante in Windows PowerShell. Il cmdlet Decode-SqlName accetta come input un identificatore di SQL Server codificato e restituisce l'identificatore originale. Ad esempio:

  • Encode-SqlName "Table:Test" restituisce la stringa "Table%3ATest".

  • Decode-SqlName "Table%3ATest" restituisce la stringa "Table:Test".

Per ulteriori informazioni, vedere Utilizzo di identificatori di SQL Server in PowerShell.

Conversione di URN in percorsi

Il modello SMO (SQL Server Management Objects) consente di generare URN (Uniform Resource Name) per gli oggetti. Ciascun URN dispone delle stesse informazioni di un percorso dell'oggetto, ma in formato diverso. Ad esempio, di seguito è riportato il percorso di una tabella:

SQLSERVER:\SQL\MyComputer\DEFAULT\Databases\AdventureWorks\Tables\Person.Address

Di seguito è riportato l'URN dello stesso oggetto:

Server[@Name='MyComputer']\Database[@Name='AdventureWorks']\Table[@Name='Address' and @Schema='Person']

Il cmdlet Convert-UrnToPath consente di convertire le stringhe URN SMO in percorsi di Windows PowerShell. Se i nomi di nodo contengono caratteri estesi non supportati nei nomi di percorso di Windows PowerShell, Convert-UrnToPath li codifica nella rappresentazione esadecimale. Ad esempio, "My:Table" viene restituito come "My%3ATable".

In Windows PowerShell eseguire Get-Help Convert-UrnToPath -Examples per ottenere esempi di utilizzo del cmdlet.

Nomi di parametri parziali

Non è necessario specificare il nome completo di un parametro di un cmdlet. Basta specificare una parte del nome sufficiente a identificarlo in modo univoco rispetto agli altri parametri che sono supportati dal cmdlet. Negli esempi che seguono vengono illustrati tre modi di specificare il parametro Invoke-Sqlcmd -QueryTimeout:

Invoke-Sqlcmd -Query "SELECT @@VERSION;" -QueryTimeout 3
Invoke-Sqlcmd -Query "SELECT @@VERSION;" -QueryTime 3
Invoke-Sqlcmd -Query "SELECT @@VERSION;" -QueryT 3