title | description | author | ms.author | ms.date | ms.service | ms.subservice | ms.topic |
---|---|---|---|---|---|---|---|
Connect to the SQL Server Database Engine |
Learn how to connect to the Database Engine used by SQL Server and Azure SQL services |
rwestMSFT |
randolphwest |
02/07/2025 |
sql |
connectivity |
conceptual |
This article provides a high level overview for connecting to the [!INCLUDE ssdenoversion-md], used by the following products and services:
- [!INCLUDE ssnoversion-md]
- [!INCLUDE ssazure-sqldb]
- [!INCLUDE ssazuremi-md]
- [!INCLUDE ssazurepdw_md]
- [!INCLUDE ssazuresynapse-md]
You connect to the [!INCLUDE ssde-md] using a client tool or client library. Client tools run in a graphical user interface (GUI), or a command-line interface (CLI).
The following table describes some of the more common client tools.
Client tool | Type | Operating system |
---|---|---|
SQL Server Management Studio (SSMS) | GUI | Windows |
MSSQL extension for Visual Studio Code | GUI | Windows, macOS, Linux |
sqlcmd | CLI | Windows, macOS, Linux |
bcp | CLI | Windows, macOS, Linux |
Note
Client tools include at least one client library. For more information about connecting with a client library, see Connection modules for Microsoft SQL Database.
When you connect to the [!INCLUDE ssde-md], you must provide an instance name (that is, the server or instance where the [!INCLUDE ssde-md] is installed), a network protocol, and a connection port, in the following format:
[<protocol>:]<instance>[,<port>]
The protocol and port are optional because they have default values. Depending on the client tool and client library, they can be skipped.
Note
If you use a custom TCP port for connecting to the [!INCLUDE ssde-md], you must separate it with a comma (,
), because the colon (:
) is used to specify the protocol.
Setting | Values | Default | Details |
---|---|---|---|
Protocol | tcp (TCP/IP), np (named pipes), or lpc (shared memory). |
np is the default when connecting to [!INCLUDE ssnoversion-md].tcp is the default when connecting to Azure SQL services. |
Protocol is optional, and is frequently excluded when connecting to [!INCLUDE ssnoversion-md] on the same computer as the client tool. For more information, see Network protocol considerations in the next section. |
Instance | The name of the server or instance. For example, MyServer or MyServer\MyInstance . |
localhost |
If the [!INCLUDE ssde-md] is located on the same computer as the client tool, you might be able to connect using localhost , 127.0.0.1 , or even . (a single period).If you're connecting to a named instance, you must specify the server name and the instance name, separated by a slash. For example, MyServer\MyInstance . A named instance on the local machine is specified by .\MyInstance . [!INCLUDE ssexpress-md] uses MyServer\SQLEXPRESS . |
Port | Any TCP port. | 1433 |
The default TCP port for connecting to the default instance of [!INCLUDE ssnoversion-md] is 1433 . However, your infrastructure team might configure custom ports.[!INCLUDE ssnoversion-md] on Windows, including [!INCLUDE ssexpress-md] edition, can be configured as a named instance and might also have a custom port. For connecting to Azure SQL services, see the Connect to Azure SQL section. For more information about custom ports with [!INCLUDE ssnoversion-md], see SQL Server Configuration Manager. |
For [!INCLUDE ssnoversion-md] on Windows, when you connect to an instance on the same machine as the client tool, and depending on which edition is installed, the default protocol can be configured with multiple protocols, including named pipes (np
), TCP/IP (tcp
), and shared memory (lpc
). Use the shared memory protocol for troubleshooting when you suspect the other protocols are configured incorrectly.
If you connect to [!INCLUDE ssnoversion-md] over a TCP/IP network, make sure that TCP/IP is enabled on the server as well. TCP/IP might be disabled by default on installations of [!INCLUDE ssnoversion-md]. For more information, see Default SQL Server Network Protocol Configuration.
Connections to Azure SQL services, [!INCLUDE ssnoversion-md] on Linux, and [!INCLUDE ssnoversion-md] in containers, all use TCP/IP.
For both [!INCLUDE ssazure-sqldb] and [!INCLUDE ssazuremi-md], see Connect and query articles.
This section provides information on connecting to Azure SQL services.
To quickly connect to and query an [!INCLUDE ssazure-sqldb] from the Azure portal, use the Azure portal Query editor for Azure SQL Database.
For external connections, be aware of the secure-by-default Azure SQL Database database-level firewall.
Examples for application connections are available:
- Use .NET and the Microsoft.Data.SqlClient library
- Use .NET and EF Core
- Use Python with pyodbc
- Use Node.js with mssql
Connect to an [!INCLUDE ssazuremi-md] in the same ways you connect to a SQL Server instance, see Connect your application to Azure SQL Managed Instance.
You can also configure a point-to-site connection to Azure SQL Managed Instance from on-premises or connect to Azure SQL Managed Instance from an Azure VM.
[!INCLUDE ssazuremi-md] can enforce a minimum Transport Layer Security (TLS) version for application connections. For more information, see Configure minimal TLS version in Azure SQL Managed Instance.
Connect to the Public IP address of the VM. For an example, see Connect to SQL Server on a Windows virtual machine in the Azure portal.
This section provides information on connecting to [!INCLUDE ssnoversion-md].
You can connect to the local machine using named pipes (np
), shared memory (lpc
), or TCP/IP (tcp
). Shared memory is the fastest, because it doesn't use the network interface.
Note
If you use an IP address for your instance name and don't specify tcp
, the protocol defaults to np
(named pipes) if it's a configured protocol.
A named instance has a dynamically assigned TCP port. If you want to connect to a named instance, the [!INCLUDE ssnoversion-md] Browser service must be running on the server.
-
If you're connecting to a server configured with default settings, use one of the following options:
localhost
127.0.0.1
.
(a single period)
-
If you're connecting to a custom TCP port, such as
51433
, use one of the following options:tcp:localhost,51433
127.0.0.1,1433
In this example, the named instance is called MyInstance
. Make sure the [!INCLUDE ssnoversion-md] Browser service is running, and use one of the following options:
localhost\MyInstance
127.0.0.1\MyInstance
.\MyInstance
You can connect using a server name or an IP address. In this example, the server name MyServer
resolves to 192.10.1.128
.
To connect to a server on the local network with named pipes, use one of the following options:
MyServer
np:MyServer
Note
On a local area network, connecting with TCP/IP might be faster than with named pipes.
-
If you're connecting to a server configured with default TCP port
1433
, use one of the following options:tcp:MyServer
tcp:192.10.1.128
-
If you're connecting to a server configured with a custom TCP port, such as
51433
, use one of the following options:MyServer,51433
tcp:MyServer,51433
192.10.1.128,51433
tcp:192.10.1.128,51433
In this example, the named instance is called MyInstance
. Make sure the [!INCLUDE ssnoversion-md] Browser service is running on the server, and use one of the following options:
tcp:MyServer\MyInstance
tcp:192.10.1.128\MyInstance
Once you connect successfully to the [!INCLUDE ssde-md] using a client tool, you can execute a [!INCLUDE tsql-md] (T-SQL) query or script.
Tip
In SQL Server Management Studio and Visual Studio Code, paste or type the query into a new query window.
For more information about running T-SQL queries in client tools, see:
- SQL Server Management Studio (SSMS)
- MSSQL extension for Visual Studio Code
- sqlcmd utility
- Azure portal query editor (Azure SQL Database)
- SQL query editor (SQL database in Microsoft Fabric)
Note
Some tools require a batch separator to know that a query is ready to be executed. For example, you might need to put the GO
separator at the end of a T-SQL query in sqlcmd to make sure that the T-SQL query runs.