> For the complete documentation index, see [llms.txt](https://kythuat.dtechvn.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kythuat.dtechvn.com/sql-server/linked-server.md).

# Linked Server

## MÔ HÌNH

Hiện tại có 02 phiên bản phần mềm QT và CB cài đặt ở 02 server khác nhau, cần truyền dữ liệu từ bản QT sang bản CB.

Đứng ở Server của bản CB ( đích) tạo 1 Linked Server để kết nối tới server bản QT

## CÁCH THỰC HIỆN

### Dùng lệnh T-sql

1. Tạo Linked Server dùng lệnh sau thay đổi thông tin phù hợp

```sql
DECLARE @LinkedServerName NVARCHAR(100) = N'LINKED_DTECH';  -- Tên của Linked server
DECLARE @RemoteServerIP   NVARCHAR(100) = N'IP\Dtech_Express,2866'; -- Thay IP thực tế
DECLARE @RemoteUser       NVARCHAR(100) = N'sa';          
DECLARE @RemotePassword   NVARCHAR(100) = N'xxxx'; -- Thay đổi mật khẩu user sa

-- 1. Xóa nếu tồn tại
IF EXISTS (SELECT srvname FROM master.dbo.sysservers WHERE srvname = @LinkedServerName)
BEGIN
    EXEC master.dbo.sp_dropserver @server=@LinkedServerName, @droplogins='droplogins';
END

-- 2. Tạo Linked Server với SQLNCLI (Driver có sẵn phổ biến)
EXEC master.dbo.sp_addlinkedserver 
    @server = @LinkedServerName, 
    @srvproduct = N'',           
    @provider = N'SQLNCLI',    -- Đã đổi từ MSOLEDBSQL sang SQLNCLI
    @datasrc = @RemoteServerIP;

-- 3. Cấu hình Login
EXEC master.dbo.sp_addlinkedsrvlogin 
    @rmtsrvname = @LinkedServerName, 
    @useself = N'False', 
    @rmtuser = @RemoteUser, 
    @rmtpassword = @RemotePassword;

-- 4. Bật cấu hình RPC
EXEC master.dbo.sp_serveroption @server=@LinkedServerName, @optname=N'rpc', @optvalue=N'true';
EXEC master.dbo.sp_serveroption @server=@LinkedServerName, @optname=N'rpc out', @optvalue=N'true';

PRINT '--- Da tao Linked Server ' + @LinkedServerName + ' bang SQLNCLI thanh cong! ---';

```

2. Kiểm tra Linked server có kết nối thành công

```sql
DECLARE @LinkedServerName NVARCHAR(100) = N'LINKED_DTECH'; 
PRINT '--- Dang kiem tra ket noi den ' + @LinkedServerName + '... ---';
EXEC('SELECT 1') AT [LINKED_DTECH]; -- Thay ten neu ban doi @LinkedServerName
PRINT '--- Ket noi thanh cong! ---';
```

3. Thực hiện cập nhật giao diện truyền đẩy dữ liệu lên có 02 lưới

Data nguồn trên giao diện cấu hình sửa lại theo cú pháp:

```
LINKED_DTECH.CONGTY_ABC_QT
```

### Dùng giao diện Manager Studio
