如何在链接的服务器表中插入一行?

时间:2012-06-22 08:45:26

标签: sql-server insert linked-server

我有一台服务器SourceServer我连接到它有一个链接服务器TargetServer。

插入语句应该如何(我需要引用链接服务器,数据库,命名空间,表):

//Connected to [SourceServer]

USE [SourceDatabase]

DECLARE @HelloWorld NVARCHAR(255)

SELECT @HelloWorld = Name From dbo.Names where Id = 1

INSERT INTO [TargetServer].[TestDatabase].dbo.TestTable (Name)   VALUES (@HelloWorld)

此语句以异常执行:

Too many prefixes.

更新:上面的语法运行正常,问题是用于连接到链接服务器的sql用户的密码已过期:)

3 个答案:

答案 0 :(得分:15)

INSERT INTO [TargetServer].[TestDatabase].[dbo].TestTable (Name)
SELECT Name From [SourceServer].[SourceDatabase].[dbo].[Names] where Id = 1

答案 1 :(得分:0)

select * into [TargetServer].[TestDatabase].[dbo].TestTable
 From [SourceServer].[SourceDatabase].[dbo].[Names]

答案 2 :(得分:0)

如果目标表中已经有目标表模式,请使用以下代码

INSERT INTO [TargetLinkedServerName].[TestDatabase].[dbo].[TargetTestTable] 
SELECT * From [SourceLinkedServerName].[SourceDatabase].[dbo].[SourceTestTable]

如果“目标”中没有目标表模式,请使用以下代码(此代码将像在源表中一样在目标中创建新表)

select * into [TargetLinkedServerName].[TestDatabase].[dbo].[TargetTestTable] 
 From [SourceLinkedServerName].[SourceDatabase].[dbo].[SourceTestTable]