Table column name 'INDEX' causing Datamaker publish to fail on insert

Document ID : KB000102702
Last Modified Date : 19/06/2018
Show Technical Document Details
Issue:
When attempting to publish with Datamaker, it fails with the following error:

Error 1018 for Row #1 in table EventDetail. SQLSTATE = 37000
[Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near 'Index'. If this is intended as a part of a table hint, A WITH keyword and parenthesis are now required. See SQL Server Books Online for proper syntax.

The failing query:
INSERT INTO dbo.TestTable1 ( Id, Type, DateStamp, Transaction, EffectiveDate, Charge, Group, AccountID, Index) VALUES ( 5, 'onset', '2017-08-15 17:41:11.000', 'IssueAcct', '2017-08-16', '0', 'taDA2BB8ABC36C495A113350ATF42', '5168675309', 1)

Placing "Index" in brackets "[Index]" and testing that query manually works.

Using Portal and or Enterprise Publish from within Datamaker is successful. The problem is only present when publishing directly from Datamaker.
Resolution:
This issue is resolved in TDM 4.5. If running a version prior to 4.5, upgrade to 4.5 or later.

After upgrading the "reserved name" that is causing the problem - in this case "index" must be added to the list in the repo. This can be done with the following query:
INSERT INTO gtrep_reserved_names (rn_word, date_created, who_created) VALUES ('RESERVED WORD', getdate(), 'USER NAME');

For example:
INSERT INTO gtrep_reserved_names (rn_word, date_created, who_created) VALUES ('index', getdate(), 'jsmith01');

For now the workaround is to publish via Portal as discussed.