2010 年 6 月 29 日 - 我在之前的删除语句中有一个未提交的操作。我提交了该操作,但我收到了另一个关于主 ID 冲突的错误。我可以解决这个问题。所以故事的士气,承诺你的行动。
原始问题 -
我正在尝试运行此查询:
with spd_data as (
select *
from openquery(IRPROD,'select * from budget_user.spd_data where fiscal_year = 2010')
)
insert into [IRPROD]..[BUDGET_USER].[SPD_DATA_BUD]
(REC_ID, FISCAL_YEAR, ENTITY_CODE, DIVISION_CODE, DEPTID, POSITION_NBR, EMPLID,
spd_data.NAME, JOB_CODE, PAY_GROUP_CODE, FUND_CODE, FUND_SOURCE, CLASS_CODE,
PROGRAM_CODE, FUNCTION_CODE, PROJECT_ID, ACCOUNT_CODE, SPD_ENC_AMT, SPD_EXP_AMT,
SPD_FB_ENC_AMT, SPD_FB_EXP_AMT, SPD_TUIT_ENC_AMT, SPD_TUIT_EXP_AMT,
spd_data.RUNDATE, HOME_DEPTID, BUD_ORIG_AMT, BUD_APPR_AMT)
SELECT REC_ID, FISCAL_YEAR, ENTITY_CODE, DIVISION_CODE, DEPTID, POSITION_NBR, EMPLID,
spd_data.NAME, JOB_CODE, PAY_GROUP_CODE, FUND_CODE, FUND_SOURCE, CLASS_CODE,
PROGRAM_CODE, FUNCTION_CODE, PROJECT_ID, ACCOUNT_CODE, SPD_ENC_AMT, SPD_EXP_AMT,
SPD_FB_ENC_AMT, SPD_FB_EXP_AMT, SPD_TUIT_ENC_AMT, SPD_TUIT_EXP_AMT,
spd_data.RUNDATE, HOME_DEPTID, lngOrig_amt, lngAppr_amt
from spd_data
left join Budgets.dbo.tblAllPosDep on project_id = projid
and job_code = jcc and position_nbr = psno
and emplid = empid
where OrgProjTest = 'EQUAL';
基本上我从 IRPROD(一个 oracle 数据库)中选择一个表,将它与一个本地表连接起来,然后将结果插入 IRPROD。
我遇到的问题是,当查询运行时,它永远不会停止。我让它运行了一个小时,它一直在运行,直到我取消它。我可以在带宽监视器上看到进出 SQL Server 数据的情况。此外,如果我只运行查询的选择部分,它会在 4 秒内返回结果。
任何想法为什么它没有完成?我以类似的方式设置了其他查询,并且没有任何问题(授予从本地表而不是远程表插入的那些)。