[How to] Kết nối đến Database Engine sử dụng sqlcmd.exe

SQL Server hỗ trợ việc client kết nối đến thông qua giao thức TCP/IP (mặc định). Ngoài ra còn cung cấp thêm một số giao thức khác như: Named Pipes Protocol, VIA Protocol, Shared Memory Protocol.

Lưu ý: để tạo kết nối sử dụng Shared Memory Protocol, máy client của bạn phải đang liên kết với một instance của Database Engine trên cùng 1 máy. Nói cách khác, phần client và server phải nằm trên một máy tính mới có thể giao tiếp qua giao thức này.

Lưu ý quan trọng: Giao thức VIA Protocol đã bị ‘deprecated’. Và sẽ không có mặt trong phiên bản SQL Server kế tiếp (sau bản 2008). Nên tránh dùng giao thức này khi phát triển mới một ứng dụng, và cũng nên thay đổi giao thức kết nối của các ứng dụng cũ đang sử dụng giao thức này.

Bài viết hướng dẫn dưới đây sẽ kết nối đến ‘default instance’ của Database Engine trên cổng 1433, và ‘named instance’ của Database Engine trên cổng 1691. Một số ví dụ sử dụng IP 127.0.0.1 (đây là IP loopback của adapter mặc định trên mọi máy tính).

Kết nối đến Database Engine với ‘instance name’:

sqlcmd -S ComputerA
sqlcmd -S ComputerA\instanceB

Kết nối đến Database Engine với địa chỉ IP:

sqlcmd -S 127.0.0.1
sqlcmd -S 127.0.0.1\instanceB

Kết nối đến Database Engine với ‘port number’ của TCP/IP:

sqlcmd -S ComputerA,1433
sqlcmd -S ComputerA,1691
sqlcmd -S 127.0.0.1,1433
sqlcmd -S 127.0.0.1,1691


KẾT NỐI SỬ DỤNG TCP/IP:

Kết nối với cú pháp chung như sau:
sqlcmd -S tcp:<computer name>,<port number>

Với default instance:
sqlcmd -S tcp:ComputerA,1433
sqlcmd -S tcp:127.0.0.1,1433

Với named instance:
sqlcmd -S tcp:ComputerA,1691
sqlcmd -S tcp:127.0.0.1,1691

KẾT NỐI SỬ DỤNG NAMED PIPES:

Cú pháp chung:
sqlcmd -S np:\\<computer name>\<pipe name>

Với default instance:
sqlcmd -S np:\\ComputerA\pipe\sql\query
sqlcmd -S np:\\127.0.0.1\pipe\sql\query

Với named instance:
sqlcmd -S np:\\ComputerA\pipe\MSSQL$\sql\query
sqlcmd -S np:\\127.0.0.1\pipe\MSSQL$\sql\query

KẾT NỐI SỬ DỤNG SHARED MEMORY (còn gọi là Local Procedure Call):

Cú pháp chung:
sqlcmd -S lpc:<computer name>

Với default instance:
sqlcmd -S lpc:ComputerA

Với named instance:
sqlcmd -S lpc:ComputerA\<instancename>

KẾT NỐI SỬ DỤNG VIA PROTOCOL:

sqlcmd -S via:<computer name>,<port number>,<NIC number>

Với default instance:
sqlcmd -S via:ComputerA,1433,0

Với named instance:
sqlcmd -S via:ComputerA,1691,0


Với tiện ích sqlcmd, mình có thể thực hiện hầu hết các kết nối.
Mình cũng lưu ý, nhận mạnh thêm rằng, nên enable giao thức nào mình muốn sử dụng và disable những giao thức/cổng không dùng đến trong cấu hình kết nối.

One thought on “[How to] Kết nối đến Database Engine sử dụng sqlcmd.exe

  1. Pingback: [How To] Giải pháp cho người không thích SQL Server Management Studio « The Long Road

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s