Read-SqlTableData

从 SQL 数据库的表读取数据。

语法

Read-SqlTableData
    [-TopN <Int64>]
    [-ColumnName <String[]>]
    [-ColumnOrder <String[]>]
    [-ColumnOrderType <OrderType[]>]
    [-OutputAs <OutputTypeSingleTable>]
    [[-Path] <String[]>]
    [-AccessToken <PSObject>]
    [-TrustServerCertificate]
    [-HostNameInCertificate <String>]
    [-Encrypt <String>]
    [<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>]
    [<CommonParameters>]
Read-SqlTableData
    [-TopN <Int64>]
    [-ColumnName <String[]>]
    [-ColumnOrder <String[]>]
    [-ColumnOrderType <OrderType[]>]
    [-OutputAs <OutputTypeSingleTable>]
    [-InputObject] <ScriptSchemaObjectBase[]>
    [-AccessToken <PSObject>]
    [-TrustServerCertificate]
    [-HostNameInCertificate <String>]
    [-Encrypt <String>]
    [<CommonParameters>]

说明

Read-SqlTableData cmdlet 读取存储在 SQL 数据库的表中的数据。 可以选择要读取的列、限制行数,以及对列进行排序和排序。

可以将此 cmdlet 与 Windows PowerShell SQL 提供程序一起使用。 此 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 身份验证的替代方法。

例如,这可用于连接到 SQL Azure DB 并使用 SQL Azure Managed InstanceService PrincipalManaged Identity

要使用的参数可以是表示令牌的字符串,也可以是 PSAccessToken 运行 Get-AzAccessToken -ResourceUrl https://database.windows.net返回的对象。

此参数是模块 v22 中的新增参数。

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ColumnName

指定此 cmdlet 返回的列的名称数组。

Type:String[]
Aliases:ColumnToReturn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ColumnOrder

指定列名称的数组,此 cmdlet 按该数组对返回的列进行排序。

Type:String[]
Aliases:OrderBy
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ColumnOrderType

指定此 cmdlet 返回的列的顺序类型的数组。 此参数的可接受值为:

  • Asc。 上升。
  • DESC。 降。

为此参数指定的值与在 ColumnOrder 参数中指定的列匹配。 此 cmdlet 忽略任何额外的值。

Type:OrderType[]
Accepted values:ASC, DESC
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionTimeout

指定在超时失败之前等待服务器连接的秒数。 超时值必须是 0 和 65534 之间的整数。 如果指定 0,则连接尝试将没有超时限制。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

为与SQL Server的连接指定 PSCredential 对象。 若要获取凭据对象,请使用 Get-Credential cmdlet。 有关详细信息,请键入 Get-Help Get-Credential。

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DatabaseName

指定包含表的数据库的名称。

如果在数据库或数据库的子项的上下文中运行此 cmdlet,该 cmdlet 将忽略此参数值。 为 cmdlet 指定 IgnoreProviderContext 参数,以仍然使用 DatabaseName 参数的值。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encrypt

连接到SQL Server时使用的加密类型。

此值映射到 Encrypt Microsoft.Data.SqlClient 驱动程序的 SqlConnection 对象上的 属性 SqlConnectionEncryptOption

在模块的 v22 中,默认 Optional 为 (,以便与 v21) 兼容。 在模块的 v23+ 中,默认值为“Mandatory”,这可能会为现有脚本创建中断性变更。

此参数是模块 v22 中的新增参数。

Type:String
Accepted values:Mandatory, Optional, Strict
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HostNameInCertificate

验证 SQL Server TLS/SSL 证书时要使用的主机名。 如果为 SQL Server 实例启用了强制加密,并且想要使用主机名/shortname 连接到实例,则必须传递此参数。 如果省略此参数,则必须将完全限定的域名 (FQDN) 传递给 -ServerInstance 才能连接到为强制加密启用的 SQL Server 实例。

此参数是模块 v22 中的新增参数。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IgnoreProviderContext

指示此 cmdlet 不使用当前上下文替代 ServerInstanceDatabaseNameSchemaNameTableName 参数的值。 如果不指定此参数,cmdlet 会忽略这些参数的值(如果可能),转而选择运行 cmdlet 的上下文。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

指定SQL Server管理对象的数组, (SMO) 表示此 cmdlet 读取的表的对象。

Type:ScriptSchemaObjectBase[]
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-OutputAs

指定输出的类型。

Type:OutputTypeSingleTable
Aliases:As
Accepted values:DataSet, DataTable, DataRows
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

指定此 cmdlet 读取的表的路径。

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SchemaName

指定表的架构名称。

如果在数据库或数据库的子项的上下文中运行此 cmdlet,该 cmdlet 将忽略此参数值。 为 cmdlet 指定 IgnoreProviderContext 参数,以仍然使用 SchemaName 参数的值。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ServerInstance

指定 SQL Server 实例的名称。 对于默认实例,请指定计算机名称。 对于命名实例,请使用格式 ComputerName\InstanceName

如果在数据库或数据库的子项的上下文中运行此 cmdlet,该 cmdlet 将忽略此参数值。 为 cmdlet 指定 IgnoreProviderContext 参数,以仍然使用 ServerInstance 参数的值。

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SuppressProviderContextWarning

指示此 cmdlet 禁止显示指示 cmdlet 使用提供程序上下文的警告消息。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TableName

指定此 cmdlet 从中读取的表的名称。

如果在数据库或数据库的子项的上下文中运行此 cmdlet,该 cmdlet 将忽略此参数值。 为 cmdlet 指定 IgnoreProviderContext 参数,以仍然使用 TableName 参数的值。

Type:String
Aliases:Name
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TopN

指定此 cmdlet 返回的数据行数。 如果未指定此参数,cmdlet 将返回所有行。

Type:Int64
Aliases:First
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TrustServerCertificate

指示是否在绕过证书链以验证信任时对通道进行加密。

在模块的 v22 中,默认 $true 为 (,以便与 v21) 兼容。 在模块的 v23+ 中,默认值为“$false”,这可能会为现有脚本创建中断性变更。

此参数是模块 v22 中的新增参数。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

System.String[]