Read-SqlTableData
從 SQL 資料庫的數據表讀取數據。
語法
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>]
Description
Read-SqlTableData Cmdlet 會讀取儲存在 SQL Database 數據表中的數據。 您可以選取要讀取的數據行、限制資料列數目,以及排序和排序數據行。
您可以搭配 Windows PowerShell SQL 提供者使用此 Cmdlet。 此 Cmdlet 可以從目前的路徑推斷伺服器、資料庫、架構和數據表等資訊。
此 Cmdlet 支援下列輸出格式:
- 數據。 System.Data.DataSet 類型的物件,其中包含一個數據表。
- DataTable。 System.Data.DataTable 類型的物件。 這個物件的 TableName 屬性與這個 Cmdlet 查詢的數據表相同。
- DataRows。 System.Data.DateRow 物件的集合。
範例
範例 1:從數據表取得三個數據列
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
此命令會從 MyServer\MyInstance
實例上的數據表 MyDatabase.dbo.MyTable
取得前三個數據列。
TopN 參數會指定數據列數目(在此案例中為 3 個)。
範例 2:顯示整個數據表
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
第一個命令會將位置變更為 SQLSERVER 提供者中的數據表。 命令提示字元會反映新位置。
範例 3:顯示選取的已排序數據行
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
參數
-AccessToken
用來向 SQL Server 驗證的存取令牌,作為使用者/密碼或 Windows 驗證的替代方案。
例如,這可用來使用 Service Principal
或 Managed Identity
來連線到 SQL Azure DB
和 SQL Azure Managed Instance
。
要使用的參數可以是字串,表示令牌或 PSAccessToken
物件,如執行 Get-AzAccessToken -ResourceUrl https://database.windows.net
所傳回。
此參數是模組 v22 的新功能。
類型: | PSObject |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ColumnName
指定這個 Cmdlet 傳回之資料行名稱的陣列。
類型: | String[] |
別名: | ColumnToReturn |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ColumnOrder
指定數據行名稱的陣列,此 Cmdlet 會排序其傳回的數據行。
類型: | String[] |
別名: | OrderBy |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ColumnOrderType
指定這個 Cmdlet 傳回之資料行的順序類型數位。 此參數可接受的值為:
- ASC。 上升。
- DESC。 降。
您為此參數指定的值符合您在 ColumnOrder 參數中指定的數據行。 此 Cmdlet 會忽略任何額外的值。
類型: | OrderType[] |
接受的值: | ASC, DESC |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ConnectionTimeout
指定要在逾時失敗前等候伺服器連線的秒數。 逾時值必須是介於 0 到 65534 之間的整數。 如果指定了 0,連線嘗試就不會逾時。
類型: | Int32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Credential
指定連接 SQL Server 的 PSCredential 物件。 若要取得認證物件,請使用 Get-Credential Cmdlet。 如需詳細資訊,請輸入 Get-Help Get-Credential。
類型: | PSCredential |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-DatabaseName
指定包含數據表的資料庫名稱。
如果您在資料庫或資料庫的子項目內容中執行此 Cmdlet,Cmdlet 會忽略此參數值。 請為 Cmdlet 指定 IgnoreProviderContext 參數,以使用 DatabaseName 參數的值。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Encrypt
線上到 SQL Server 時要使用的加密類型。
此值會對應至 Microsoft.Data.SqlClient 驅動程式之 SqlConnection 物件上的 Encrypt
屬性 SqlConnectionEncryptOption
。
在模組的 v22 中,預設值為 Optional
(為了與 v21 相容)。 在模組的 v23+ 中,預設值會是 「強制」,這可能會為現有的腳本建立重大變更。
此參數是模組 v22 的新功能。
類型: | String |
接受的值: | Mandatory, Optional, Strict |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-HostNameInCertificate
用來驗證 SQL Server TLS/SSL 憑證的主機名。 如果您的 SQL Server 實例已啟用強制加密,而且您想要使用主機名/shortname 連線到實例,則必須傳遞此參數。 如果省略此參數,則必須將完整功能變數名稱 (FQDN) 傳遞至 -ServerInstance 才能連線到啟用強制加密的 SQL Server 實例。
此參數是模組 v22 的新功能。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-IgnoreProviderContext
表示此 Cmdlet 不會使用目前的內容來覆寫 ServerInstance、DatabaseName、SchemaName和 TableName 參數的值。 如果您未指定此參數,Cmdlet 會盡可能忽略這些參數的值,而不是執行 Cmdlet 的內容。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-InputObject
指定 SQL Server 管理物件 (SMO) 物件的陣列,代表這個 Cmdlet 讀取的數據表。
類型: | ScriptSchemaObjectBase[] |
Position: | 1 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-OutputAs
指定輸出的類型。
類型: | OutputTypeSingleTable |
別名: | As |
接受的值: | DataSet, DataTable, DataRows |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Path
指定這個 Cmdlet 讀取之資料表的路徑。
類型: | String[] |
Position: | 1 |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ProgressAction
決定 PowerShell 如何回應腳本、Cmdlet 或提供者所產生的進度更新,例如 Write-Progress Cmdlet 所產生的進度列。 Write-Progress Cmdlet 會建立顯示命令狀態的進度列。
類型: | ActionPreference |
別名: | proga |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-SchemaName
指定數據表的架構名稱。
如果您在資料庫或資料庫的子項目內容中執行此 Cmdlet,Cmdlet 會忽略此參數值。 請為 Cmdlet 指定 IgnoreProviderContext 參數,以無論如何使用 SchemaName 參數的值。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ServerInstance
指定 SQL Server 實例的名稱。
針對預設實例,指定計算機名稱。
針對具名實例,請使用 ComputerName\InstanceName
格式。
如果您在資料庫或資料庫的子項目內容中執行此 Cmdlet,Cmdlet 會忽略此參數值。 請為 Cmdlet 指定 IgnoreProviderContext 參數,以無論如何使用 ServerInstance 參數的值。
類型: | String[] |
Position: | 1 |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-SuppressProviderContextWarning
指出此 Cmdlet 會隱藏指出 Cmdlet 使用提供者內容的警告訊息。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-TableName
指定這個 Cmdlet 讀取所在的資料表名稱。
如果您在資料庫或資料庫的子項目內容中執行此 Cmdlet,Cmdlet 會忽略此參數值。 請為 Cmdlet 指定 IgnoreProviderContext 參數,以使用 TableName 參數的值。
類型: | String |
別名: | Name |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-TopN
指定這個 Cmdlet 傳回的數據列數。 如果您未指定此參數,Cmdlet 會傳回所有數據列。
類型: | Int64 |
別名: | First |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-TrustServerCertificate
指出通道是否會在略過憑證鏈結以驗證信任時加密。
在模組的 v22 中,預設值為 $true
(為了與 v21 相容)。 在模組的 v23+ 中,預設值會是 『$false』,這可能會為現有的腳本建立重大變更。
此參數是模組 v22 的新功能。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
System.String[]