SSMSと適切な権限を持つユーザーを使用してSQL Serverにアクセスしています。
このユーザーがSSMSを使用してデータベースをアタッチしようとすると(データベースノードを右クリックしてからアタッチをクリックすると)、エラーメッセージが表示されます。
要求されたダイアログを表示できません。
パラメーター名:nColIndex
実際の値は-1でした。 (Microsoft.SqlServer.GridControl)
Microsoft.SqlServer.Management.UI.Grid.GridControl.SetColumnWidthInternal
(Int32 nColIndex、GridColumnWidthType widthType、Int32 nWidth)
...
Microsoft.SqlServer.Management.SqlManagerUI.AttachDatabase.SetGridColumnWidth
(SqlManagerUIDlgGrid grid、Double [] columnWidthRatio、Int32 columnIndex)
...
同じユーザーが以下のようなT-SQLコマンドを使用すると、正常に機能します。
CREATE DATABASE [hgnx] ON
( FILENAME = N'E:\db\hgnx.mdf' ),
( FILENAME = N'E:\db\hgnx_log.ldf' )
FOR ATTACH
これは権限の問題のようには見えませんが、UIのバグです。
Management Studio Expressを使用している場合は、2つのオプションを検討する必要があります。
実際、結局のところ(@Justicatorに感謝) このバグはツールの2012バージョンでのみ修正された なので、オプション(2)が最善の策(または、そうではない)このタイプのタスクにはUIを使用します)。