web-dev-qa-db-ja.com

SSMSでデータベースをアタッチするとエラーが発生する

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
5
IT researcher

これは権限の問題のようには見えませんが、UIのバグです。

Management Studio Expressを使用している場合は、2つのオプションを検討する必要があります。

  1. 最新のサービスパック (クライアントツールにも適用されます)、および 最新の累積的な更新 を使用していることを確認します。
  2. ツールの2008/2008 R2バージョンのバグの多くはまだ修正されていないため、おそらく修正されることはありません。 Expressバージョンの機能は制限されています。したがって、2008 R2からの機能不全のExpressバージョンの使用を停止してください。 Management Studioの完全に機能するバージョンは SQL Server 2012 Service Pack 1 の時点で完全に無料です。はい、2005、2008、2008 R2、2012のすべてのインスタンスを最新バージョンのツールで管理できます。

実際、結局のところ(@Justicatorに感謝) このバグはツールの2012バージョンでのみ修正された なので、オプション(2)が最善の策(または、そうではない)このタイプのタスクにはUIを使用します)。

13
Aaron Bertrand