2016-04-01 11 views
-1

ユニコードへの切り替えにより、一部のデータベースをVarcharからnVarcharに変換したいとします。そのために、私は必要なSQLスクリプトを生成するための小さなDelphiアプリケーションを作成し始めました。T-SQLで特定のテーブルとカラムのインデックス名を取得

VARCHARからNVARCHARへ列を変更するには、最初にindexが存在する場合は削除する必要があります。だから私の質問はどのように任意のテーブルや列からインデックスの名前を取得できますか?

+1

このクエリをお試しください!これを見て:http://stackoverflow.com/questions/765867/list-of-all-index-index-columns-in-sql-server-db – FLICKER

答えて

2

は重複し

SELECT TableName = t.NAME 
    ,IndexName = ind.NAME 
    ,IndexId = ind.index_id 
    ,ColumnId = ic.index_column_id 
    ,ColumnName = col.NAME 
    ,ind.* 
    ,ic.* 
    ,col.* 
FROM sys.indexes ind 
INNER JOIN sys.index_columns ic ON ind.object_id = ic.object_id 
    AND ind.index_id = ic.index_id 
INNER JOIN sys.columns col ON ic.object_id = col.object_id 
    AND ic.column_id = col.column_id 
INNER JOIN sys.tables t ON ind.object_id = t.object_id 
WHERE ind.is_primary_key = 0 
    AND ind.is_unique = 0 
    AND ind.is_unique_constraint = 0 
    AND t.is_ms_shipped = 0 
    AND t.name=<Your TableName> 
ORDER BY t.NAME 
    ,ind.NAME 
    ,ind.index_id 
    ,ic.index_column_id 
+0

グレート:)私はすぐにテストする –

+0

答えを選択してくださいあなたのために働く – StackUser

関連する問題