Я получаю следующую ошибку, когда пытаюсь использовать переменную в качестве имени столбца.Как использовать переменную как имя столбца
Ошибка
Msg 207, Level 16, State 1, Line 45
Invalid имя столбца '@WKNUM'.
Код
SET NOCOUNT ON
GO
DECLARE @WKNUM int
SET @WKNUM = 17
WHILE (@WKNUM < 20)
BEGIN;
UPDATE dbo.DataModel_TEST_NUM
SET dbo.DataModel_TEST_NUM.[@WKNUM] = dbo.TEST2.[New Value]
FROM dbo.TEST2
INNER JOIN dbo.DataModel_TEST_NUM
ON dbo.TEST2.[Opportunity ID] = dbo.DataModel_TEST_NUM.opportunityID
WHERE (dbo.TEST2.WKNUM = @WKNUM)
SET @WKNUM = @WKNUM + 1
END;
GO
SET NOCOUNT OFF
GO
Любая идея, почему он дает эту ошибку?
Вы не можете использовать переменную для имени столбца, подобного этому. Вместо этого используйте динамический sql. –
Опишите, что именно вы хотите сделать? Я смутил, что вы хотите изменить имя столбца, или хотите добавить новый столбец, или хотите обновить некоторые столбцы или, возможно, другое дело;). –
Это выглядит как ужасно неэффективный способ попробовать «PIVOT». –