I'm having trouble with an Alter Table if a column doesn't exist.
This is my code:
DECLARE @appId INT
DECLARE @cursor CURSOR
IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'MinMktIdeaParticipants' AND TABLE_NAME = 'mkIdeaCategories')
BEGIN
ALTER TABLE mkIdeaCategories
ADD MinMktIdeaParticipants int NOT NULL DEFAULT 1
END
IF EXISTS(SELECT Value FROM appConfiguration WHERE CodeId = 16 AND AppConfigurationTypeId = 3 AND ModuleId = 10)
BEGIN
SET @cursor = CURSOR FAST_FORWARD
FOR
SELECT ApplicationId FROM mkMarket
OPEN @cursor
FETCH NEXT FROM @cursor INTO @appId
WHILE (@@Fetch_Status >= 0)
BEGIN
UPDATE
mkIdeaCategories
SET MinMktIdeaParticipants = (SELECT Value FROM appConfiguration
WHERE ApplicationId = @appId AND CodeId = 16 AND AppConfigurationTypeId = 3 AND ModuleId = 10)
WHERE IdeaCatId IN
(select distinct(theme.IdeaCatId) from dbo.mkIdeaCategories theme
inner join dbo.mkMarketIdeaCategories mic ON theme.IdeaCatId = mic.IdeaCatId
inner join mkMarket m on m.MarketId=mic.MarketId
WHERE m.ApplicationId = @appId)
FETCH NEXT FROM @cursor INTO @appId
END
CLOSE @cursor
DEALLOCATE @cursor
DELETE * FROM appConfiguration WHERE CodeId = 16 AND AppConfigurationTypeId = 3 AND ModuleId = 10
END
I don't think there are any errors. For some reason, the output error is
Msg 207, Level 16, State 1, Line 53
Invalid column name 'MinMktIdeaParticipants'.
I've already searched for similar questions, but couldn't find an answer that solved the problem.