SELECT
CONNECTIONPROPERTY('net_transport') AS net_transport,
CONNECTIONPROPERTY('protocol_type') AS protocol_type,
CONNECTIONPROPERTY('auth_scheme') AS auth_scheme,
CONNECTIONPROPERTY('local_net_address') AS local_net_address,
CONNECTIONPROPERTY('local_tcp_port') AS local_tcp_port,
CONNECTIONPROPERTY('client_net_address') AS client_net_address
Koden här ger dig IP-adressen;
Detta kommer att fungera för en fjärrklientbegäran till SQL 2008 och nyare.
Om du har delade minnesanslutningar tillåtna, kommer körning ovanför på själva servern att ge dig
- "Delat minne" som värdet för 'net_transport' och
- NULL för 'local_net_address' och
- '
' kommer att visas i 'client_net_address'.
'client_net_address' är adressen till datorn som begäran härrör från, medan 'local_net_address' skulle vara SQL-servern (därmed NULL över delade minnesanslutningar), och adressen du skulle ge till någon om de inte kan använda serverns NetBios namn eller FQDN av någon anledning.
Jag avråder starkt från att använda detta svar. Att aktivera skalet är en mycket dålig idé på en produktions-SQL-server.