Trying to add a Date column to table, but getting MSG 156 Incorrect syntax near the keyword error

83 Views Asked by At

I'm attempting to create a column which calculates the date based on the start date and a week count column. Below is my code:

ALTER TABLE Salesforce_Expanded
    ADD current_date DATE;
GO

UPDATE Salesforce_Expanded
SET current_date = DATEADD(week, Week_Count-1, start_date);

I'm getting the following errors:

Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'current_date'.

Msg 156, Level 15, State 1, Line 6
Incorrect syntax near the keyword 'current_date'.

2

There are 2 best solutions below

0
Stu On BEST ANSWER

I would recommend using a computed column here.

The problem with adding and updating values in a new column is that you now have a value that is dependent on existing data; it is possible to update any of the other dependent columns in isolation and then current_date is immediately invalid or corrupted data.

You could enforce maintaining the value via a trigger, however a better solution would be to implement a computed column, which will always be correct.

Alter table Salesforce_Expanded
add [Current_Date] as DATEADD(week, Week_Count-1, start_date);
0
user21126867 On

As mentioned in the comments, I was using a Reserved Keyword as the name of the column. Changing the name of the column fixed the issue.