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

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

Если да, то как?

Я очень ценю вашу помощь. Спасибо.

Ответ 1

exec

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

Ответ 2

Если вы используете 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

Ответ 3

Решение от 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.

Связанные параметры сервера

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

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