我想使用 PowerShell 获取 SQL Server 中表的以下元数据信息的列表:
列名、是否可为空列、是否为主键、是否为外键、数据类型以及是否唯一(或属于唯一键的一部分)
目前我正在使用以下内容,但没有获取唯一 key 的信息:
PS SQLSERVER:\SQL\MyComputer\DEFAULT\Databases\MyDB\Tables\dbo.MyTable\Columns> Get-ChildItem | select Name, Nullable, IsPrimaryKey, IsForeignKey, DataType
我想要得到类似下面的东西
Name : MyID
Nullable : False
IsPrimaryKey : True
IsForeignKey : False
DataType : int
IsUnique : True
任何想法
最佳答案
有一个 IsUnique 属性,但是它是索引的属性,而索引是表的属性。因此,如果您想使用 SqlProvider,可以通过以下方法获取属于唯一索引的列,然后将属性添加到列输出:
PS SQLSERVER:\SQL\MyComputer\DEFAULT\Databases\MyDB\Tables\dbo.MyTable>
$UQColumns = get-item . | foreach {$_.indexes} | where {$_.IsUnique} | foreach {$_.IndexedColumns} | select -expandproperty Name
cd Columns
Get-ChildItem | select Name, Nullable, IsPrimaryKey, IsForeignKey, DataType, @{n='IsUnique';e={$UQColumns -contains $_.Name}}
关于sql-server - 如何使用 PowerShell 获取 SQL Server 中表的唯一键列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10046140/