MS SQL“ SELECT INTO”表创建问题

时间:2019-06-20 15:12:29

标签: sql-server

我需要修改MS SQL“作业”并添加一个步骤。我正在SSMS中创建步骤以测试我在做什么。我在DEV服务器上。

我需要执行SELECT INTO来创建或填充表格。唯一的麻烦是,FROM子句引用的是Oracle的“链接服务器”。基本查询是:

SELECT *
INTO MyDatabase.MySchema.MyTable
FROM LinkedServer..RemoteSchema.RemoteTable

我在SSMS中报告了两个错误:

  • 无论我怎么称呼“新”本地表,SSMS都报告它是无效的对象。

  • 我被告知FROM

  • 附近有语法错误

在现有的DB作业中,有几种此类用法的示例。我只是不确定为什么它在这里失败。

我尝试了什么?我已经在台式机上的SSMS中尝试了以下操作,并以“管理员”用户的身份RDP进入DEV服务器,以便在那里使用SSMS。

SELECT *
INTO MyDatabase.MySchema.MyTable
FROM LinkedServer..RemoteSchema.RemoteTable

--

USE MyDatabase;

SELECT *
INTO MySchema.MyTable
FROM LinkedServer..RemoteSchema.RemoteTable

--

SELECT *
INSERT INTO  MyDatabase.MySchema.MyTable
FROM OPENQUERY(LinkedServer, '
    select * from RemoteSchema.RemoteTable
');

--

SELECT *
INTO MyDatabase.MySchema.foo
FROM MyDatabase.MySchema.ExistingTable

在上面的最后一个实例中,我确保源表存在而目标表不存在。我认为我遵守HERE

中的规则

我想念什么?

编辑

我所缺少的是一个巨大的错字。我实际上使用了不正确的语法,例如上面的第三个示例:select * INSERT into...。我对SSMS查询窗口中的“插入”一词视而不见,并设法在上面的大多数示例中对其进行了编辑。

1 个答案:

答案 0 :(得分:1)

您应该创建一个空表,然后将链接服务器中的行插入到表中。

scalac