我有一个(希望)很快的SQL问题,这使我疯狂,我一直无法找到答案。SQL中的动态变量名称
我有以下SQL触发器:
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
为了您的信息,位置代码,如“ABC-12345”,其中ABC基本上是网站,12345是建筑。因此,SUBSTRING(wo.location,1,3)拉出了ABC部分的位置,以便它可以填入@ABCOwnerGroup
问题在于它插入值'@ABCOwnerGroup'而不是'GROUP ONE'
任何和所有的帮助,非常感谢!希望这是一个小小的错误!
为什么一个触发器?可能有一些Check-Constraints使工作更容易。 – Ice 2010-10-22 21:01:42