【问题标题】:The object name 'DBSourceServer.SourceDWHTemp.dbo.SourceTable1' contains more than the maximum number of prefixes. The maximum is 2对象名称“DBSourceServer.SourceDWHTemp.dbo.SourceTable1”包含的前缀数量超过了最大数量。最大值为 2
【发布时间】:2021-06-03 16:42:18
【问题描述】:

我们有 DBServer1 和 DBServer2,想在 SQL Server 存储过程中将数据从 DBSourceServer 加载到 DBTargetServer。 SourceDB 和 SourceDWHTemp 位于 DBServer1 中。 TargetDB 驻留在 DBServer2 中。 我们在 SourceDB 存储过程脚本中应用 ETL 技术,中间表存储在 SourceDWHTemp 中。最终数据将加载到 TargetDWHDB 表中。 我们在运行脚本时遇到了问题。

    ---- We are running this script in [TargetDB]  database and DBTargetServer machine
Use [TargetDWHDB]    
select * from [DBSourceServer].[SourceDWHTemp].[dbo].[SourceTable1]      ----- It is successfully executing
DROP TABLE [DBSourceServer].[SourceDWHTemp].[dbo].[SourceTable1]    ----- 

这是抛出以下错误消息

错误信息:

消息 117,级别 15,状态 1,第 15 行 对象名称“DBSourceServer.SourceDWHTemp.dbo.SourceTable1”包含的前缀数量超过了最大数量。最大值为 2。 完成时间:2021-06-02T18:21:31.6669423+08:00

如何解决这个问题。 提前致谢。

【问题讨论】:

  • 您不能在链接服务器上删除表(至少不使用该语法)。
  • 即使我不能截断这个:TRUNCATE TABLE [DBSourceServer].[SourceDWHTemp].[dbo].[SourceTable1] ----- 这是抛出以下错误消息 Msg 2702, Level 16,状态 2,第 15 行数据库“SourceDWHTemp”不存在。

标签: sql sql-server


【解决方案1】:

试试下面的执行选项。

EXECUTE ( 'DROP TABLE .[SourceDWHTemp].[dbo].[SourceTable1] ' ) AT [DBSourceServer];

Read more on this issue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-15
    相关资源
    最近更新 更多