2010-05-03 24 views

Trả lời

15
exec 

('CREATE TABLE DatabaseName.dbo.TableName 
(
    column1 datatype, 
    column2 datatype, 
    column3 datatype 
)') at [LinkedServer] 
+0

Điều này không hiệu quả đối với tôi. Không thành công với Msg 7411, Cấp 16, Tiểu bang 1, Dòng 1 Máy chủ 'MyLinkedServer' không được định cấu hình cho RPC. – brewmanz

+0

Vấn đề cũ, nhưng không ai trả lời, đây là giải pháp cho lỗi: "'MyLinkedServer' không được cấu hình cho RPC". –

+0

Giải pháp exec không gửi câu lệnh "Tạo bảng" đến máy chủ được liên kết dưới dạng câu lệnh SQL. Nó gửi nó như là một chuỗi mà lần lượt được thực hiện như một thủ tục trên máy chủ từ xa. Lỗi RPC đến vì pr kết nối máy chủ được liên kết. mặc định không cho phép bạn thực hiện các thủ tục từ xa. Để giải quyết vấn đề này: Mở phần thích hợp trên máy chủ được liên kết. Trên trang [Tùy chọn máy chủ], đặt các tùy chọn RPC và RPC Out thành true. Tôi đang thêm một bài đăng có ảnh chụp màn hình. –

1

Nếu bạn đang sử dụng SQL Server Management Studio và các chế độ SQLCMD:

-- To enable "SQLCMD mode" in SQL Server Management Studio (SSMS): 
-- In the menu toolbar: Query > SQLCMD mode 

:setvar LinkedServer "YourLinkedServerNameHere" 
:setvar DestinationDb "YourDestinationDatabaseNameHere" 
GO 

EXEC (' 
CREATE TABLE $(DestinationDb).dbo.YourTableNameHere (
    [Field1] INT NOT NULL, 
    [Field2] INT NOT NULL 
) 
') AT $(LinkedServer) 
GO 

EXEC ('DROP TABLE $(DestinationDb).dbo.YourTableNameHere') AT $(LinkedServer) 
GO 
+0

Điều này không thành công đối với tôi với: Msg 7411, Cấp 16, Tiểu bang 1, Dòng 5 Máy chủ 'MyLinkedServer' không được định cấu hình cho RPC. – brewmanz

1

Các giải pháp từ Arpit hoạt động tốt.

exec 

('CREATE TABLE DatabaseName.dbo.TableName 
(
    column1 datatype, 
    column2 datatype, 
    column3 datatype 
)') at [LinkedServer]; 
go 

Làm thế nào bao giờ hết, khi bạn nhận được lỗi "Msg 7411, Level 16, State 1, Line 1 Server 'MyLinkedServer' không được cấu hình cho RPC." bạn cần phải thay đổi các tham số RPC trên kết nối máy chủ được liên kết. Mặc định RPC được đặt thành false. Nó cần phải được đặt thành true.

Linked server options

Điều này cho phép bạn chạy các quy trình trên máy chủ được liên kết. Bạn phải cho phép điều này vì giải pháp không gửi câu lệnh "Tạo bảng" dưới dạng lệnh SQL đến máy chủ được liên kết. Nó gửi câu lệnh dưới dạng một chuỗi mà lần lượt được thực hiện như một thủ tục trên máy chủ từ xa.

Hy vọng điều này sẽ hữu ích.

Các vấn đề liên quan