Je suis en train de courir la redoutée erreur "L'identificateur en plusieurs parties n'a pas pu être lié" sur une procédure stockée sur laquelle je travaille actuellement. J'ai quelques questions en ce qui concerne la requête ci-dessous.Clause de sortie: L'identificateur en plusieurs parties n'a pas pu être lié
- Pourquoi ai-je cette erreur?
- Pourquoi cette erreur se produirait-elle sur ImportFundingDateTime au lieu de FloorplanId étant donné qu'ils proviennent tous les deux de la même requête, mais FloorplanId est listé en premier dans la clause de sortie?
- Puis-je ajuster cette requête pour ne pas obtenir l'erreur tout en conservant la même structure générale?
.
DECLARE @Results Table(
[FloorPlanId] UNIQUEIDENTIFIER,
[ImportFundingDateTime] DATETIME,
[TimeStamp] VARBINARY(8),
[BusinessId] UNIQUEIDENTIFIER
)
UPDATE CacRecord
SET MatchFound = 1
OUTPUT fp.[FloorplanId], cr.[ImportFundingDateTime],
fp.[TimeStamp], buyer.[BusinessId]
INTO @Results( [FloorplanId], [ImportFundingDateTime],
[TimeStamp], [BusinessId])
FROM CacRecord cr WITH (NOLOCK)
INNER JOIN CacBatch cb WITH (NOLOCK)
ON cr.CacBatchId = cb.CacBatchId
INNER JOIN Floorplan fp WITH (NOLOCK)
ON fp.UnitVIN = cr.ImportVin
AND COALESCE(fp.UnitVIN, '') <> ''
INNER JOIN Business buyer WITH (NOLOCK)
ON buyer.BusinessId = fp.BuyerBusinessId
LEFT OUTER JOIN BusinessContact bc WITH (NOLOCK)
ON bc.BusinessId = buyer.BusinessId
LEFT OUTER JOIN Contact c WITH (NOLOCK)
ON c.ContactId = bc.ContactId
WHERE cb.CacJobInstanceId = @cacJobInstanceId
AND fp.FloorplanStatusId = 1 --Approved
AND COALESCE(cr.ImportVin, '') <> ''
AND 1 =
CASE
WHEN cr.ImportFein = buyer.FederalTaxID
AND COALESCE(cr.ImportFein, '') <> '' THEN 1
WHEN cr.ImportSsn = c.Ssn
AND COALESCE(cr.ImportSsn, '') <> '' THEN 1
ELSE 0
END;
Si vous exécutez la requête en utilisant 'Sélectionnez fp. [FloorplanId], cr. [ImportFundingDateTime], fp. [Timestamp], l'acheteur. [Businessid]' et vos et où des clauses, est-il exécuter sans Erreur? – Thomas