J'ai une question SQL (j'espère) rapide qui me rend fou et je n'ai pas été capable de trouver une réponse n'importe où.Noms de variables dynamiques dans SQL
Je le déclencheur SQL suivante:
DECLARE @ABCOwnerGroup varchar(30)
DECLARE @DEFOwnerGroup varchar(30)
SET @ABCOwnerGroup='GROUP ONE'
SET @DEFOwnerGroup='GROUP TWO'
etc..
--IF OWNERGROUP IS MISSING (Location NOT NULL)
UPDATE wo
SET wo.ownergroup='@'+SUBSTRING(wo.location,1,3)+'OwnerGroup'
FROM dbo.workorder AS wo INNER JOIN inserted AS i ON wo.wonum=i.wonum
WHERE wo.status<>'COMP'
AND wo.historyflag=0
AND wo.istask=0
AND wo.ownergroup IS NULL
AND wo.location IS NOT NULL
Pour votre information, les codes d'emplacement sont comme 'ABC-12345' où ABC est essentiellement le site et le bâtiment est 12345. Donc SUBSTRING (wo.location, 1,3) tire la partie ABC de l'emplacement pour qu'il puisse remplir @ABCOwnerGroup
Le problème est qu'il insère la valeur '@ABCOwnerGroup' au lieu de 'GROUP ONE'
Toute aide est grandement appréciée! J'espère que c'est une erreur mineure!
Pourquoi un déclencheur? Peut-être que certaines contraintes de contrôle rendent le travail beaucoup plus facile. – Ice