TSQLでデバッグしたいと思います。デバッグを開始すると、次のメッセージボックスポップアップが表示されます。 SSMS v17.2では
次に、このメッセージが表示されます。
Microsoft Visual Studio 2015 Server Explorerで同じエラー:
次に、このメッセージが表示されます。
ありがとうございました!
デバッグは非常に特権的な操作です。したがって、sysadmin固定サーバーロールのメンバーのみがSQL Serverでデバッグできます。
要件の詳細については、 方法:Transact-SQLデバッグを有効にする を参照してください。
これについて説明し、いくつかの可能なシナリオをリストするいくつかの接続項目もあります。
Sysadmin以外のメンバーに対するデバッグサポートの不足の背後にある不満を理解していますが、エンジンでそのようなサポートを有効にすることには多くの課題があります。過去に調べたところ、他のプロセスに影響を与えずにサーバーのデバッグエクスペリエンスを分離するための明確な方法が見つかりませんでした。以下はいくつかの重要な問題です:
- 一般的にデバッグには、より高い特権が必要です。これは、SQL ServerまたはOSにも当てはまります。
- たとえば、SQL ServerでSQLCLRコードをデバッグすると、サーバーの他のSQLCLRタスクがフリーズし、パフォーマンスに重大な影響を与える可能性があります
- デバッグエンドポイントは現在DCOMベースであり、独自の制限があります
- 最後に、運用サーバーでT-SQLコードをデバッグすることはお勧めしません。シナリオは主に開発目的であり、以下で説明する代替案があります
Visual StudioまたはSQL Server Management StudioまたはSQL Serverデータツール(SSDT)を使用して、SQL Serverのローカルコピーに対してデバッグできます。 SQL Server 2012には、SSDTで使用されるSQL Server Express LocalDB SKUもあります。現在、LocalDBでサポートされている表面積/機能はSQL Serverのサブセットですが、長期的な目標は、SQL Azureを含むSQL Serverでサポートされているすべての機能を有効にすることです。したがって、T-SQLロジックのデバッグにはローカル開発環境を使用することをお勧めします。さらに、クローンデータベース(データのない統計を含む)を取得して、クエリプランに関連する問題を再現することもできます。これは、環境固有の問題やLocalDBの機能の不足以外のほとんどの場合に機能します。お役に立てれば。
Umachandar、SQLプログラミングチーム
最小のセキュリティ要件はsysadminです。これは、SQLエンジンセキュリティの仕様によるものです。