none
孤立ユーザーの検出SQLでエラーが出力されてしまう RRS feed

  • 質問

  • お世話になります。

    SQL Server 2008を使用してTeam Foundation Server 2010 (以下TFSとします)を導入しています。
    先日、TFSの管理コンソール ユーザーを新規追加しようとしてエラーになりました。
    ログを見ると、追加しようとしているユーザーが孤立ユーザーとなっているという
    趣旨のことが書かれていました(以下)。

    >孤立した SQL Server ログインが次のアカウントに関連付けられています: Server01\TFSUSER。
    >このログインには正しくないセキュリティ識別子 (SID) が設定されています。
    >Team Foundation Server のデータベースのホストとして選択されているサーバーは Server01 です。
    >このサーバー上の SQL Server インスタンスから、ログインを削除する必要があります。

    それで、まず孤立しているユーザーの検出をするために

    http://technet.microsoft.com/ja-jp/library/ms175475(v=sql.100).aspx

    を参考にして、新しいクエリに

    USE ReportServer;
    GO;
    sp_change_users_login @Action='Report';
    GO;

    として実行すると、

    メッセージ 102、レベル 15、状態 1、行 2
    'GO' 付近に不適切な構文があります。

    というエラーが出力され、SQLステートメントのsp_change_users_loginの部分に
    赤い波線のアンダーラインが表示されています。

    孤立しているユーザーを検出するためにはこれ以外に
    何か特別な手順を踏まなければならないのでしょうか。
    基礎的なことで申しわけありませんが、どうぞご教授ください。

    2012年7月3日 7:34

回答

  • GOはTransact-SQLステートメントではありませんので、セミコロンを付けるとエラーになるのだと思います。GOの後ろのセミコロンを取るとうまく動作するはずです。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2012年7月3日 8:27

すべての返信

  • GOはTransact-SQLステートメントではありませんので、セミコロンを付けるとエラーになるのだと思います。GOの後ろのセミコロンを取るとうまく動作するはずです。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2012年7月3日 8:27
  • trapemiyaさま 回答ありがとうございます。

    ご教授いただいたとおり、セミコロンを削除して実行したところ正常に実行できました。

    普段Oracleユーザの私には不慣れな構文のため、参考サイトの構文をそのまま鵜呑みにしてしまいました。

    孤立ユーザーの検出より後のTransact-SQLの構文のGOにセミコロンがついてないのに気がつきませんでした。

    初歩的な質網をしてしまい、申しわけありませんでした。

    2012年7月3日 9:04