Можно ли создать таблицу на связанном сервере? - PullRequest
12 голосов
/ 03 мая 2010

Можно ли создать таблицу на связанном сервере?

Ответы [ 3 ]

18 голосов
/ 27 декабря 2012
exec

('CREATE TABLE DatabaseName.dbo.TableName
(
  column1 datatype,
  column2 datatype,
  column3 datatype
)') at [LinkedServer]
3 голосов
/ 10 января 2017

Решение от Arpit работает отлично.

exec

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

Как бы то ни было, когда вы получаете сообщение об ошибке «Msg 7411, уровень 16, состояние 1, линия 1, сервер« MyLinkedServer »не настроен для RPC».вам нужно изменить RPC-параметры на подключенном сервере.По умолчанию RPC установлен на false.Необходимо установить значение true.

Linked server options

Это позволяет запускать процедуры на связанном сервере.Вы должны разрешить это, поскольку решение не отправляет оператор «Создать таблицу» в виде команды SQL на связанный сервер.Он отправляет оператор в виде строки, которая, в свою очередь, выполняется как процедура на удаленном сервере.

Надеюсь, это поможет.

1 голос
/ 07 мая 2013

Если вы используете SQL Server Management Studio и режим 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...