パソコン情報

SQLserverで困った経験を備忘録にしたTips5選

OpenClipart-VectorsによるPixabayからの画像

 

私自身がSQLserverを使っていて困った経験や、エラーなどに遭遇した時の事を備忘録としてPCTips5選を記事にしてみました。

 

 

突然ダイヤグラムが使えなくなった

 

ダイヤグラムを開こうとしたら、下記のようなエラーが出てリレーションが組めなくなりました。

 

 

注意ポイント

データベース プリシパルとして実行できません。プリシパル”dbo”が存在しないか、この種類のプリシパルで権限を信用できないか、ユーザーに権限がありません。(Microsoft SQL server、エラー:15517)

 


さらに、既に組んでいたリレーションも見ることができません。

 

どうしたらいいものか!?費やす時間5時間。

クエリで下記のコマンドを実行して回避した。

 

ココがポイント

exec sp_changedbowner 'sa'

 

 

このコマンドの説明は、

メモ

データベース所有者 (dbo) が不明なユーザーとして表示されている場合は、ユーザー データベースで次のコードを実行します。

 

とのことなのですが、意味不明ですが、とりあえず修復したので良かった。

 

 

 

SSMSユーザーログインできない時

 

このエラーというか、設定は、よくあるあるだと思います。

 

ココがダメ

SQL Server Management Studio (SSMS) からユーザー追加して設定した後、ログインしようとしてもログインできない。

 

SSMSのインスタントの部分のプロパティを選択して、

Windows認証モードになっているので、それをSQLユーザーもログインできる

 

ココがポイント

混合モードにする

 

ことで、ログインできるようになった。

 

 

 

変更の保存が許可されていません

 

注意ポイント

変更の保存が許可されていません。行った変更には、次のテーブルを削除して再作成することが必要になります。再作成できないテーブルに変更を行ったか、テーブルの再作成を必要とする変更を保存できないようにするオプションが有効になっています。

 

これを回避するためには、

メニューから

 

  1. 「ツール」を選ぶ
  2. 「オプション」を選ぶ
  3. 左側のツリーから「デザイナ」を選ぶ
  4. 右側の「テーブル オプション」から「テーブルの再作成を必要とする変更
  5. を保存できないようにする」のチェックを外す


とすれば、出来るようになる。

 

 

SSMSダイヤグラムが突然開けない

 

注意ポイント

メッセージ 15517
データベース プリンシパルとして実行できません。プリンシパル "dbo" が存在しないか、この種類のプリンシパルで権限を借用できないか、ユーザーに権限がありません。

 

 

突然、ダイヤグラムを開こうとしたらエラーがでて変更ができない。
データベースの所有者を確認する必要があるとか。

 

原因

移行先でデータベースを復元(リストア)した後は、異なるドメインや、ワークグループ環境へ復元した場合は、復元後にデータベースの所有者が「空」に設定されていることがあるらしい。

 

対応

データベースからの右クリック>>プロパティ>>ファイル>>所有者

ここに、所有者を選択していれれば、回避できる。
いろいろとあるものだ。

 

※下記のページを参考にさせていただきました。

 

 

 

インディックスが配列の境界外

 

テーブルの更新がしたくて、新しいクエリを選択して、編集モードにして、クエリデザイナーを開くと、


注意ポイント

インディックスが配列の境界外・・・ってエラー

 

で、追加するテーブルが表示されない。

 

GUI環境でクエリが作成したいと思っていたができない。

調べてみると、これは、ソフトのエラーらしくて、検索かけるとアップデートしろとか出てくる。

 

今回は、SSMSのバージョンを新しく

 

したら直った。

 

もしかすると、サーバーを再起動したらどうだったのだろうか?

全てのSSMSのバージョンを新しくした訳ではなく、エラーが出たSSMSだけの不思議な現象だ。