MS SQL Server では、[データベース プロパティ] ダイアログの左側に [接続プロパティの表示] リンクがあります。これをクリックすると、現在の接続のプロパティ (認証方法、ネットワーク プロトコル、コンピュータ名など) を含む [接続プロパティ] ダイアログが表示されます。
SQLクエリを実行してプログラムでその情報を取得する方法はありますか? そのクエリはどのようになりますか?
MS SQL Server では、[データベース プロパティ] ダイアログの左側に [接続プロパティの表示] リンクがあります。これをクリックすると、現在の接続のプロパティ (認証方法、ネットワーク プロトコル、コンピュータ名など) を含む [接続プロパティ] ダイアログが表示されます。
SQLクエリを実行してプログラムでその情報を取得する方法はありますか? そのクエリはどのようになりますか?
SQL 2005 以降、問い合わせた後sys.dm_exec_connections
。現在の接続プロパティを取得するには、次を実行します。
select * from sys.dm_exec_connections
where session_id = @@SPID
フィールド値は、接続に使用されるプロトコル (共有メモリ、名前付きパイプ、または tcp) によって異なりますが、すべてに、使用される認証方法、プロトコル、およびクライアントのネット アドレスに関する情報が含まれています。
はい、できますが、接続プロパティ UI に表示されるプロパティは複数の場所から取得されるため、目的のプロパティによって異なります。
いくつかのクエリ ( や などxp_msver
)select suser_sname()
を使用して一部のプロパティを取得しますが、xp_instance_regread
ストアド プロシージャを使用してサーバーのレジストリから一部の値を取得します。
SQLエンジンとの対話がSQLを使用して実行できる場合、実行されるほとんどすべてが管理スタジオです。プロファイラー セッションを開始し、UI でアクションを実行すると、実行されている (あいまいな、文書化されていない、サポートされていない) SQL が明らかになります。
答えは「いいえ」だと思います。コンピュータ情報はコンピュータに保存されます。接続情報は、ほとんどの場合、構成ファイルまたは MS SQL Server に保存されます。
しかし、MSSQL システム テーブルを見て、どのようなプロパティがあるかを確認してください。