2012-04-06 5 views
2

PowerShellを使用して、SQL Serverのテーブルの次のメタデータ情報の一覧を取得します。PowerShellを使用してSQL Serverでテーブルの一意キーのリストを取得する方法はありますか。

列名、NULL可能列、プライマリキー、外部キー、データ型、ユニークユニークキーの一部)現在、私は、一意のキーの情報を得ることなく、次を使用してい

PS SQLSERVER:\SQL\MyComputer\DEFAULT\Databases\MyDB\Tables\dbo.MyTable\Columns> Get-ChildItem | select Name, Nullable, IsPrimaryKey, IsForeignKey, DataType 

私は、次の

のようなものを取得したいと思い10

任意のアイデア

答えて

2

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}} 
+0

偉大なもの、男! –

0

私はPowerShellを使用してそれを行う方法がわからないのですが、私はあなたがMSDN、特にObject Catalog ViewsCatalog Viewsセクションになるはずだと思います。アイデアを作るために、ここでのコードは、あなたがSomeTableという名前のテーブルの列に関する情報を取得するために使用できるスニペット:

select c.* 
    from sys.objects o 
     inner join sys.columns c on c.object_id = o.object_id 
    where o.type = 'u' and o.name = 'SomeTable'; 
+0

は、あなたの答えをありがとう、私はする必要がありますPowerShellを使用して他のフィルタを使用することができます。 – rcarrillopadron

関連する問題