2010-05-03 13 views

Respuesta

15
exec 

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

Esto no funcionó para mí. Falló con Msg 7411, nivel 16, estado 1, línea 1 Servidor 'MyLinkedServer' no está configurado para RPC. – brewmanz

+0

Problema anterior, pero como nadie respondió, aquí está la solución al error: "'MyLinkedServer' no está configurado para RPC". –

+0

La solución ejecutiva no envía la instrucción "Crear tabla" al servidor vinculado como una instrucción SQL. Lo envía como una cadena que a su vez se ejecuta como un procedimiento en el servidor remoto. El error de RPC se debe a que la conexión del servidor vinculado pr. el predeterminado no le permite ejecutar procedimientos remotos. Para resolver esto: abra los derechos en el servidor vinculado. En la página [Opciones del servidor], configure las opciones RPC y RPC Out como verdaderas. Estoy agregando una publicación con la captura de pantalla. –

1

Si está utilizando SQL Server Management Studio y el modo 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

Esto me falló con: Msg 7411, nivel 16, estado 1, línea 5 Servidor 'MyLinkedServer' no está configurado para RPC. – brewmanz

1

La solución de Arpit funciona bien.

exec 

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

Cómo siempre, cuando se obtiene el error "Msg 7411, nivel 16, estado 1, línea 1 Servidor 'MyLinkedServer' no está configurado para RPC." necesita cambiar los parámetros RPC en la conexión del servidor vinculado. Como RPC predeterminado se establece en falso. Necesita establecerse en verdadero.

Linked server options

Esto le permite ejecutar los procedimientos en el servidor vinculado. Debe permitir esto porque la solución no envía la instrucción "Crear tabla" como un comando SQL al servidor vinculado. Envía la instrucción como una cadena que a su vez se ejecuta como un procedimiento en el servidor remoto.

Espero que esto ayude.

Cuestiones relacionadas