我需要修改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查询窗口中的“插入”一词视而不见,并设法在上面的大多数示例中对其进行了编辑。
答案 0 :(得分:1)
您应该创建一个空表,然后将链接服务器中的行插入到表中。
scalac