是否有可能链接的服务器上创建一个表?

问题描述 投票:12回答:3

是否有可能链接的服务器上创建一个表?

sql-server sql-server-2005
3个回答
18
投票
exec

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

3
投票

从Arpit解决方案的工作很好。

exec

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

如何过,当你的错误“消息7411,级别16,状态1,行1服务器‘MyLinkedServer’未配置为RPC。”您需要更改链接服务器连接上的RPC参数。作为默认RPC设置为false。它需要设置为true。

Linked server options

这允许您运行链接服务器上的程序。你必须让这一点,因为该解决方案不发送“CREATE TABLE”语句作为SQL命令到链接服务器。它发送语句作为其进而作为远程服务器上的程序被执行的字符串。

希望这可以帮助。


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
© www.soinside.com 2019 - 2024. All rights reserved.