Sql server 2012 “多部分标识符”;“字段”;无法约束
我正在尝试使用存储在临时结果集中的数据(代码中的源代码)用SQL Server 2012填充另一个表。当执行下面的代码时,我得到错误“多部分标识符”SOURCE.JnlDetoaId“无法绑定” 我在这里读了一些文章,但没有看到如何将它们应用到我的案例中。 需要帮忙吗Sql server 2012 “多部分标识符”;“字段”;无法约束,sql-server-2012,temporary-objects,Sql Server 2012,Temporary Objects,我正在尝试使用存储在临时结果集中的数据(代码中的源代码)用SQL Server 2012填充另一个表。当执行下面的代码时,我得到错误“多部分标识符”SOURCE.JnlDetoaId“无法绑定” 我在这里读了一些文章,但没有看到如何将它们应用到我的案例中。 需要帮忙吗 SELECT Journaldet.*, Agency.ID_Agency INTO sourceTable FROM Journaldet inner join Agency ON Agency.Agency_ID = Jo
SELECT Journaldet.*, Agency.ID_Agency INTO sourceTable
FROM Journaldet
inner join Agency
ON Agency.Agency_ID = Journaldet.AgenceId;
IF ((SELECT COUNT(j.Journal_ID) FROM dbo.Journal as j, sourceTable s WHERE j.Journal_ID = s.JournalId) = 0)
INSERT INTO Discarded.JournalDet(JournalDet_ID, Amount, Sensoa, DetoaId,ID_Agency, JournalId, Appli_Source, ReasonDiscarded, DateDiscarded)
VALUES (select JnlDetoaId, Amount, Sensoa, DetoaId, ID_Agency, JournalId, 'GameApps','Member not yet inserted', GETDATE() FROM sourceTable)
问题在于插入()值()。
将值插入丢弃的.JournalDet表。不能仅使用源表中的上述字段。您必须从源表中进行选择
你不能只使用source.JournalDet。。和soo-on,仅仅是因为它们被定义在上面几行 下面是我如何解决问题的。源代码未按我的要求作为结果集显示在插入中。插页没什么用。我只是以这样一种方式重写了查询,结果集可以在INSERT中看到。非常感谢你
INSERT INTO Discarded.JournalDet
(JournalDet_ID, Amount, Sensoa, DetoaId, ID_Agency, JournalId, Appli_Source, ReasonDiscarded, DateDiscarded)
SELECT SOURCE1.JnlDetoaId, Amount,Sensoa,DetoaId,ID_Agency,JournalId, 'GameApps', 'Member not yet inserted', GETDATE()
FROM Journaldet AS SOURCE1
inner join Agency AS SOURCE2 ON SOURCE2.Agency_ID = SOURCE1.AgenceId
WHERE ((SELECT COUNT(Journal.Journal_ID) FROM dbo.Journal WHERE dbo.Journal.Journal_ID = SOURCE1.JournalId)=0)
尝试使用别名。比如:从dbo.Journal作为j,SOURCE作为s。我尝试过,但在“SOURCE.jnledtoaid”的位置出现了与“s.jnledtoaid”相同的错误(因为SOURCE被别名为s)。我想要的是在结果集中有来自第一个SELECT的数据—可以是临时表、参数或其他东西—这样我就可以在进一步的表达式中使用该结果集,比如第一个SELECT后面的IF。源是另一个表名吗?您已定义此表?SOURCE是我要在其中存储第一次选择的数据的结果集。首先,如果SORUCE是您的表名,请将其更改为类似JOIN的关键字。请尝试此操作,并在遇到问题时通知我。我无法执行,因为我没有表结构。
INSERT INTO Discarded.JournalDet
(JournalDet_ID, Amount, Sensoa, DetoaId, ID_Agency, JournalId, Appli_Source, ReasonDiscarded, DateDiscarded)
SELECT SOURCE1.JnlDetoaId, Amount,Sensoa,DetoaId,ID_Agency,JournalId, 'GameApps', 'Member not yet inserted', GETDATE()
FROM Journaldet AS SOURCE1
inner join Agency AS SOURCE2 ON SOURCE2.Agency_ID = SOURCE1.AgenceId
WHERE ((SELECT COUNT(Journal.Journal_ID) FROM dbo.Journal WHERE dbo.Journal.Journal_ID = SOURCE1.JournalId)=0)