我在这里的第一篇文章,所以请对我温柔:)
我有一个存储过程,我用它获取一些源数据,进行一些操作,对其运行一些更新语句,然后将数据放入我们的主数据表中(我猜你可以说它是一个 ETL)。我遇到的问题是我编写的一些更新语句在程序运行时似乎没有工作,但是,如果我在单独的查询窗口中手动运行它们,它们工作得很好。从技术上讲,有两个部分更新语句,一部分更新,另一部分失败,这给我的麻烦增加了进一步的复杂性。
更新的代码片段如下:
UPDATE Prod_DDb.dbo.DataLoadTeleconnect
SET pCommissionValue = (SELECT Commission
FROM dbo.MappingiPhoneCommission
WHERE Prod_DDb.dbo.DataLoadTeleconnect.pMRC BETWEEN BaseMRC AND HighMRC),
pMRCBand = (SELECT MRCBand
FROM dbo.MappingiPhoneCommission
WHERE Prod_DDb.dbo.DataLoadTeleconnect.pMRC BETWEEN BaseMRC AND HighMRC)
WHERE pMapID = 'iPhone'
代码更新了我的源表中的 2 列,其中记录的 MRC 介于基本和高 mrc 之间。佣金是未更新的值,但 MRCBand 正确更新。
MappingiPhoneCommission 表具有以下列:
- BaseMRC
- 高MRC
- 委员会
- MRC乐队
如果有人能解释为什么这会在存储过程中失败但在新的查询窗口中运行良好,我将不胜感激。
如果您需要任何进一步的信息,请告诉我,我会尽力提供所需的信息。
亲切的问候托尼