2010-05-03 13 views

risposta

15
exec 

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

Questo non ha funzionato per me. Errore con messaggio 7411, livello 16, stato 1, riga 1 Il server "MyLinkedServer" non è configurato per RPC. – brewmanz

+0

Vecchio problema, ma come nessuno ha risposto, ecco la soluzione all'errore: "'MyLinkedServer' non è configurato per RPC". –

+0

La soluzione exec non invia l'istruzione "Crea tabella" al server collegato come istruzione SQL. Lo invia come una stringa che a sua volta viene eseguita come una procedura sul server remoto. L'errore RPC deriva dal fatto che il pr-link-server collegato. l'impostazione predefinita non consente di eseguire procedure remote. Per risolvere questo: Aprire le proprietà sul server collegato. Nella pagina [Opzioni server], impostare le opzioni RPC e RPC Out come vere. Sto aggiungendo un post con la schermata. –

1

Se stai usando SQL Server Management Studio la modalità SQLCMD e:

-- 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

Questo non è riuscito con: Msg 7411, livello 16, stato 1, riga 5 Il server "MyLinkedServer" non è configurato per RPC. – brewmanz

1

La soluzione da Arpit funziona bene.

exec 

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

Come sempre, quando si ottiene l'errore "Msg 7411, livello 16, stato 1, riga 1 Server 'MyLinkedServer' non è configurato per RPC." è necessario modificare i parametri RPC sulla connessione al server collegato. Come predefinito, RPC è impostato su false. Deve essere impostato su true.

Linked server options

Questo consente di eseguire le procedure sul server collegato. È necessario consentire questo perché la soluzione non invia l'istruzione "Crea tabella" come comando SQL al server collegato. Invia l'istruzione come una stringa che a sua volta viene eseguita come una procedura sul server remoto.

Spero che questo aiuti.

Problemi correlati