SQL Server错误:对象名称包含的前缀超出了最大限值。最多只能有 2 个。

查询远程数据库数据表并执行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)

—— 完 ——
相关推荐
评论

立 为 非 似

中 谁 昨 此

宵 风 夜 星

。 露 , 辰

文章点击榜

细 无 轻 自

如 边 似 在

愁 丝 梦 飞

。 雨 , 花