Condividi tramite


Read-SqlTableData

Legge i dati da una tabella di un database SQL.

Sintassi

Read-SqlTableData
    [-TopN <Int64>]
    [-ColumnName <String[]>]
    [-ColumnOrder <String[]>]
    [-ColumnOrderType <OrderType[]>]
    [-OutputAs <OutputTypeSingleTable>]
    [[-Path] <String[]>]
    [-AccessToken <PSObject>]
    [-TrustServerCertificate]
    [-HostNameInCertificate <String>]
    [-Encrypt <String>]
    [-ProgressAction <ActionPreference>]
    [<CommonParameters>]
Read-SqlTableData
    [-TableName <String>]
    [-TopN <Int64>]
    [-ColumnName <String[]>]
    [-ColumnOrder <String[]>]
    [-ColumnOrderType <OrderType[]>]
    [-OutputAs <OutputTypeSingleTable>]
    [-DatabaseName <String>]
    [-SchemaName <String>]
    [-IgnoreProviderContext]
    [-SuppressProviderContextWarning]
    [[-ServerInstance] <String[]>]
    [-Credential <PSCredential>]
    [-ConnectionTimeout <Int32>]
    [-AccessToken <PSObject>]
    [-TrustServerCertificate]
    [-HostNameInCertificate <String>]
    [-Encrypt <String>]
    [-ProgressAction <ActionPreference>]
    [<CommonParameters>]
Read-SqlTableData
    [-TopN <Int64>]
    [-ColumnName <String[]>]
    [-ColumnOrder <String[]>]
    [-ColumnOrderType <OrderType[]>]
    [-OutputAs <OutputTypeSingleTable>]
    [-InputObject] <ScriptSchemaObjectBase[]>
    [-AccessToken <PSObject>]
    [-TrustServerCertificate]
    [-HostNameInCertificate <String>]
    [-Encrypt <String>]
    [-ProgressAction <ActionPreference>]
    [<CommonParameters>]

Descrizione

Il cmdlet Read-SqlTableData legge i dati archiviati in una tabella di un database SQL. È possibile selezionare le colonne da leggere, limitare il numero di righe e ordinare le colonne.

È possibile usare questo cmdlet con il provider SQL di Windows PowerShell. Questo cmdlet può dedurre informazioni quali server, database, schema e tabella dal percorso corrente.

Questo cmdlet supporta i formati di output seguenti:

  • Dataset. Oggetto di tipo System.Data.DataSet contenente una tabella.
  • DataTable. Oggetto di tipo System.Data.DataTable. La proprietà TableName di questo oggetto corrisponde alla tabella su cui viene eseguita la query di questo cmdlet.
  • DataRows. Insieme di oggetti System.Data.DateRow.

Esempio

Esempio 1: Ottenere tre righe da una tabella

PS C:\> Read-SqlTableData -ServerInstance "MyServer\MyInstance" -DatabaseName "MyDatabase" -SchemaName "dbo" -TableName "MyTable" -TopN 3

Id Name   Amount
-- ----   ------
10 AAAAA  -1.2
11 BBBBB  1.2
12 CCCCC  -1.0

Questo comando ottiene le prime tre righe dalla tabella MyDatabase.dbo.MyTable nell'istanza di MyServer\MyInstance. Il parametro topN specifica il numero di righe (3 in questo caso).

Esempio 2: Visualizzare un'intera tabella

PS C:\> cd SQLSERVER:\sql\MyServer\MyInstance\Databases\MyDatabase\Tables\dbo.CSVTable
PS SQLSERVER:\sql\MyServer\MyInstance\Databases\MyDatabase\Tables\dbo.CSVTable> Read-SqlTableData

Id Name Amount
-- ---- ------
10 AAAA -1.2
11 BBBB 1.2
12 CCCC -1.0
13 DDDD -2.0

Il primo comando modifica la posizione in modo che sia una tabella nel provider SQLSERVER. Il prompt dei comandi riflette il nuovo percorso.

Esempio 3: Visualizzare le colonne ordinate selezionate

PS C:\> cd SQLSERVER:\sql\MyServer\MyInstance\Databases\MyDatabase\Tables\dbo.CSVTable
PS SQLSERVER:\sql\MyServer\MyInstance\Databases\MyDatabase\Tables\dbo.CSVTable> Read-SqlTableData -TopN 3 -ColumnName "Id","Name" -ColumnOrder "Id","Name" -ColumnOrderType DESC,ASC

Id Name
-- ----
12 CCCC
11 BBBB
10 AAAA

Parametri

-AccessToken

Token di accesso usato per eseguire l'autenticazione a SQL Server, come alternativa all'autenticazione utente/password o windows.

Può essere usato, ad esempio, per connettersi a SQL Azure DB e SQL Azure Managed Instance usando un Service Principal o un Managed Identity.

Il parametro da usare può essere una stringa che rappresenta il token o un oggetto PSAccessToken restituito eseguendo Get-AzAccessToken -ResourceUrl https://database.windows.net.

Questo parametro è nuovo nella versione 22 del modulo.

Tipo:PSObject
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ColumnName

Specifica una matrice di nomi di colonne restituite dal cmdlet.

Tipo:String[]
Alias:ColumnToReturn
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ColumnOrder

Specifica una matrice di nomi di colonne in base alla quale questo cmdlet ordina le colonne restituite.

Tipo:String[]
Alias:OrderBy
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ColumnOrderType

Specifica una matrice di tipi di ordine per le colonne restituite dal cmdlet. I valori accettabili per questo parametro sono:

  • ASC. Ascendente.
  • DESC. Discendente.

I valori specificati per questo parametro corrispondono alle colonne specificate nel parametro ColumnOrder. Questo cmdlet ignora tutti i valori aggiuntivi.

Tipo:OrderType[]
Valori accettati:ASC, DESC
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ConnectionTimeout

Specifica il numero di secondi di attesa di una connessione server prima di un errore di timeout. Il valore di timeout deve essere un numero intero compreso tra 0 e 65534. Se si specifica 0, i tentativi di connessione non si verifica il timeout.

Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Credential

Specifica un oggetto PSCredential per la connessione a SQL Server. Per ottenere un oggetto credenziale, usare il cmdlet Get-Credential. Per altre informazioni, digitare Get-Help Get-Credential.

Tipo:PSCredential
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-DatabaseName

Specifica il nome del database che contiene la tabella.

Se si esegue questo cmdlet nel contesto di un database o di un elemento figlio di un database, il cmdlet ignora questo valore di parametro. Specificare il parametro IgnoreProviderContext per il cmdlet per usare comunque il valore del parametro DatabaseName.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Encrypt

Tipo di crittografia da usare per la connessione a SQL Server.

Questo valore esegue il mapping alla proprietà EncryptSqlConnectionEncryptOption sull'oggetto SqlConnection del driver Microsoft.Data.SqlClient.

Nella versione 22 del modulo, il valore predefinito è Optional (per compatibilità con v21). Nella versione 23+ del modulo, il valore predefinito sarà "Obbligatorio", che potrebbe creare una modifica di rilievo per gli script esistenti.

Questo parametro è nuovo nella versione 22 del modulo.

Tipo:String
Valori accettati:Mandatory, Optional, Strict
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-HostNameInCertificate

Nome host da usare per convalidare il certificato TLS/SSL di SQL Server. È necessario passare questo parametro se l'istanza di SQL Server è abilitata per Forza crittografia e si vuole connettersi a un'istanza usando nome host/nome breve. Se questo parametro viene omesso, è necessario passare il nome di dominio completo (FQDN) a -ServerInstance per connettersi a un'istanza di SQL Server abilitata per Forza crittografia.

Questo parametro è nuovo nella versione 22 del modulo.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-IgnoreProviderContext

Indica che questo cmdlet non usa il contesto corrente per eseguire l'override dei valori del ServerInstance, DatabaseName, SchemaNamee parametri TableName. Se non si specifica questo parametro, il cmdlet ignora i valori di questi parametri, se possibile, a favore del contesto in cui si esegue il cmdlet.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-InputObject

Specifica una matrice di oggetti SMO (SQL Server Management Objects) che rappresentano la tabella letta da questo cmdlet.

Tipo:ScriptSchemaObjectBase[]
Posizione:1
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-OutputAs

Specifica il tipo di output.

Tipo:OutputTypeSingleTable
Alias:As
Valori accettati:DataSet, DataTable, DataRows
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Path

Specifica il percorso della tabella che questo cmdlet legge.

Tipo:String[]
Posizione:1
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ProgressAction

Determina in che modo PowerShell risponde agli aggiornamenti dello stato generati da uno script, un cmdlet o un provider, ad esempio le barre di stato generate dal cmdlet Write-Progress. Il cmdlet Write-Progress crea barre di stato che mostrano lo stato di un comando.

Tipo:ActionPreference
Alias:proga
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-SchemaName

Specifica il nome dello schema per la tabella.

Se si esegue questo cmdlet nel contesto di un database o di un elemento figlio di un database, il cmdlet ignora questo valore di parametro. Specificare il parametro IgnoreProviderContext affinché il cmdlet usi comunque il valore del parametro schemaName .

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ServerInstance

Specifica il nome di un'istanza di SQL Server. Per l'istanza predefinita, specificare il nome del computer. Per le istanze denominate, usare il formato ComputerName\InstanceName.

Se si esegue questo cmdlet nel contesto di un database o di un elemento figlio di un database, il cmdlet ignora questo valore di parametro. Specificare il parametro IgnoreProviderContext per il cmdlet per usare comunque il valore del parametro ServerInstance .

Tipo:String[]
Posizione:1
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-SuppressProviderContextWarning

Indica che questo cmdlet elimina il messaggio di avviso che indica che il cmdlet usa il contesto del provider.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-TableName

Specifica il nome della tabella da cui viene letto questo cmdlet.

Se si esegue questo cmdlet nel contesto di un database o di un elemento figlio di un database, il cmdlet ignora questo valore di parametro. Specificare il parametro IgnoreProviderContext per il cmdlet per usare comunque il valore del parametro TableName .

Tipo:String
Alias:Name
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-TopN

Specifica il numero di righe di dati restituiti da questo cmdlet. Se non si specifica questo parametro, il cmdlet restituisce tutte le righe.

Tipo:Int64
Alias:First
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-TrustServerCertificate

Indica se il canale verrà crittografato durante il bypass della catena di certificati per convalidare l'attendibilità.

Nella versione 22 del modulo, il valore predefinito è $true (per compatibilità con v21). Nella versione 23+ del modulo, il valore predefinito sarà "$false", che potrebbe creare una modifica di rilievo per gli script esistenti.

Questo parametro è nuovo nella versione 22 del modulo.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

System.String[]