Dan*_* Wu 12 sql-server insert linked-server
我想在本地服务器上插入一些数据到远程服务器,并使用以下sql:
select * into linkservername.mydbname.dbo.test from localdbname.dbo.test
Run Code Online (Sandbox Code Playgroud)
但它会引发以下错误
对象名称"linkservername.mydbname.dbo.test"包含的前缀数量超过最大数量.最大值为2.
我怎样才能做到这一点?
2To*_*oad 11
该SELECT...INTO [new_table_name]
语句最多支持2个前缀:[database].[schema].[table]
注意:使用以下方法将数据拉过链接更为高效:使用以下方法SELECT INTO
推送数据INSERT INTO
:
SELECT INTO
记录最少.SELECT INTO
通常不会隐式启动分布式事务.我通常在第2点说,因为在大多数情况下,使用时不会隐式创建分布式事务SELECT INTO
.如果探查器跟踪告诉您SQL Server仍在隐式创建分布式事务,则可以先SELECT INTO
使用临时表,以防止隐式分布式事务,然后将数据从临时表移动到目标表中.
推送与拉动示例
在此示例中,我们通过链接将数据从[server_a]复制到[server_b].此示例假定可以从两个服务器执行查询:
推送
而不是连接到[server_a]并将数据推送到[server_b]:
INSERT INTO [server_b].[database].[schema].[table]
SELECT * FROM [database].[schema].[table]
Run Code Online (Sandbox Code Playgroud)
拉
连接到[server_b]并从[server_a]中提取数据:
SELECT * INTO [database].[schema].[table]
FROM [server_a].[database].[schema].[table]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17470 次 |
最近记录: |