如何使用 PowerShell 获取具有数据类型(和长度)的表列?

jra*_*ara 2 sql-server-2008 sql-server powershell

我正在尝试使用 PowerShell 为 SQL Server 实例获取具有数据类型(和长度)的列名。我走了这么远:

#Load PSSnapin
Add-PSSnapin *SQL*

#Get column names
$colNames = dir 'SQLSERVER:\SQL\MYCOMPUTER\MYSQLINSTANCE\Databases\MYDATABASE\Tables' | 
    Where-Object {$_.DisplayName -match "dbo.MYTABLE"} | 
        ForEach-Object {$_.Columns} |
            Select-Object Name, DataType
$colNames
Run Code Online (Sandbox Code Playgroud)

如何获取列的数据类型长度?

小智 6

长度位于<Column>.Properties['Length'].Value,因此您可以选择它,例如:

#Get column names
$colNames = dir 'SQLSERVER:\SQL\MYCOMPUTER\MYSQLINSTANCE\Databases\MYDATABASE\Tables' | 
    Where-Object {$_.DisplayName -match "dbo.MYTABLE"} | 
        ForEach-Object {$_.Columns} |
            Select-Object Name, DataType, `
                @{Name='Length'; Expression = {$_.Properties['Length'].Value}}
$colNames
Run Code Online (Sandbox Code Playgroud)