You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同服务器跨库复制数据提示Invalid object name错误如何解决

跨库插入报Invalid Object Name错误排查方案

按以下优先级逐一排查即可解决问题:

  • 优先核对表名拼写:当前语句中目标表名为tbl_Training_Attempt_New(Attempt为单数形式),源表写为tbl_Training_Attempts_New(Attempts为复数形式),这类单复数笔误是该报错的最高频诱因,先登录BS_Copy库确认源表的准确命名,排查是否存在多字、漏字、拼写错误。
  • 补全跨库对象的完整引用路径:SQL Server跨库访问对象的标准三段式格式为[数据库名].[架构名].[表名],当前语句省略了架构名,系统会默认使用当前连接账号的默认架构查找表,若源表不属于该架构就会触发对象无效报错。通用场景下默认架构为dbo,将源表引用修改为BS_Copy.dbo.tbl_Training_Attempts_New即可,目标表也建议同步补全架构名,写为BS_Database.dbo.tbl_Training_Attempt_New规避同类问题。
  • 校验账号权限:确认执行该语句的数据库账号,对BS_Copy库及对应的源表持有SELECT权限,对目标库目标表持有INSERT权限,部分权限不足场景不会直接抛出权限异常,会返回对象名无效的报错。
  • 校验源库状态:确认BS_Copy库处于正常在线状态,未处于还原、离线、可疑等不可用状态,可单独执行SELECT TOP 1 * FROM BS_Copy.sys.tables验证库的可访问性。

修正后参考语句

执行前建议先注释掉INSERT行,单独运行SELECT部分确认能正常返回预期数据,再执行全量插入:

INSERT INTO BS_Database.dbo.tbl_Training_Attempt_New
(
    [AttemptId],
    [RequirementId],
    [EmployeeCompanyId],
    [TaskId],
    [CourseId],
    [RecordId],
    [StartDate],
    [Score],
    [IsComplete],
    [CompleteDate],
    [IsPassed],
    [Active],
    [TimeInSession]
)
SELECT
    [AttemptId],
    [RequirementId],
    [EmployeeCompanyId],
    [TaskId],
    [CourseId],
    [RecordId],
    [StartDate],
    [Score],
    [IsComplete],
    [CompleteDate],
    [IsPassed],
    [Active],
    [TimeInSession]
FROM BS_Copy.dbo.tbl_Training_Attempts_New
WHERE IsPassed = 0

内容的提问来源于stack exchange,提问作者Rani Radcliff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 17:24:22