Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách khắc phục “Máy chủ không được định cấu hình cho RPC” Msg 7411 bằng T-SQL

Nếu bạn gặp phải lỗi Msg 7411, Cấp 16 trong SQL Server, thì đó là do bạn cần bật “RPC out” trên máy chủ được liên kết mà bạn đang cố gắng thực thi mã.

Ví dụ về mã gây ra lỗi

Đối với tôi, việc chạy đoạn mã sau dẫn đến lỗi Msg 7411.

EXEC Homer.Music.dbo.spAlbumsFromArtist 
    @ArtistName = 'Iron Maiden';

Ở đây, tôi đang cố gắng thực thi một quy trình được lưu trữ trên máy chủ được liên kết. Nhưng tôi chưa bật "RPC out" và vì vậy tôi gặp lỗi sau:

Msg 7411, Level 16, State 1, Line 1
Server 'Homer' is not configured for RPC.

Mặc dù nó đọc là “RPC”, nó có nghĩa là “RPC out”.

Kiểm tra Cài đặt RPC Out

Chúng tôi có thể kiểm tra cài đặt RPC out của mình bằng đoạn mã sau.

SELECT 
    is_rpc_out_enabled
FROM sys.servers
WHERE name = 'Homer';

Kết quả:

+----------------------+
| is_rpc_out_enabled   |
|----------------------|
| 0                    |
+----------------------+

Như mong đợi, nó không được bật.

Giải pháp

Đoạn mã sau cho phép tùy chọn “RPC out” cho máy chủ được liên kết:

EXEC sp_serveroption 'Homer', 'rpc out', 'true';

Kết quả:

Commands completed successfully.

Thành công lớn.

Vì vậy, nếu chúng tôi kiểm tra lại cài đặt RPC out của mình, bây giờ nó sẽ được đặt thành 1 .

Xác minh Cài đặt RPC Out

Hãy chạy lại mã.

SELECT 
    is_rpc_out_enabled
FROM sys.servers
WHERE name = 'Homer';

Kết quả:

+----------------------+
| is_rpc_out_enabled   |
|----------------------|
| 1                    |
+----------------------+

Hoàn hảo!

Vì vậy, bây giờ chúng ta có thể chạy thủ tục được lưu trữ mà không gặp lỗi 7411.

Thử chạy lại mã gốc của chúng tôi

Bây giờ chúng tôi có thể thử thực hiện lại quy trình được lưu trữ từ xa và hy vọng chúng tôi không gặp phải bất kỳ lỗi nào nữa.

EXEC Homer.Music.dbo.spAlbumsFromArtist 
    @ArtistName = 'Iron Maiden';

Kết quả:

+-------------------------+---------------+
| AlbumName               | ReleaseDate   |
|-------------------------+---------------|
| Powerslave              | 1984-09-03    |
| Somewhere in Time       | 1986-09-29    |
| Piece of Mind           | 1983-05-16    |
| Killers                 | 1981-02-02    |
| No Prayer for the Dying | 1990-10-01    |
+-------------------------+---------------+

Đã sửa!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lưu trữ hình ảnh trong SQL Server?

  2. Trả về danh sách các hàm phân vùng trong SQL Server (T-SQL)

  3. Sử dụng SERVERPROPERTY () để nhận thông tin máy chủ trong SQL Server

  4. Khi hiệu suất của Distinction và Group By khác nhau?

  5. Ba xu hướng hàng đầu ảnh hưởng đến các DBA chịu trách nhiệm giám sát máy chủ SQL