查询远程数据库数据表并执行Into语句时,提示:对象名称包含的前缀超出了最大限值。最多只能有 2 个。
具体执行的语句为:
SELECT * into [远程数据库IP].[远程数据库名称].[dbo].[远程数据库表] FROM [本地数据库名称].[dbo].[本地数据库表]
网上查找资料分析,应该是无法对远程数据库表进行insert into操作,具体如下:
To create the table in another database on the same instance of SQL Server, specify new_table as a fully qualified name in the form database.schema.table_name.
要在SQL Server的同一实例上的另一个数据库中创建表,请以database.schema.table_name的形式指定new_table作为完全限定名称。
You cannot create new_table on a remote server; however, you can populate new_table from a remote data source.
不能在远程服务器上创建new_table;但是,您可以从远程数据源填充newtable。
个人理解应该是insert into适合从远程往本机插入数据,而不适合本机往远程插入数据,从本机往远程插入数据可以用insert…select。
解决办法为:
insert [远程数据库IP].[远程数据库名称].[dbo].[远程数据库表] (列1,列2,列3,...)
select * from [本地数据库名称].[dbo].[本地数据库表]
至于不知道怎么访问远程数据库的,参照:SQL Server 跨数据库查询 - 薄学网 (boxuewang.net)