# MSSQL node - Incorrect syntax near ','

**URL:** <https://discourse.nodered.org/t/mssql-node-incorrect-syntax-near/98910>\
**Category:** General\
**Tags:** node-red-contrib-mssql-plus\
**Created:** [2 September 2025 08:56 UTC](https://discourse.nodered.org/t/mssql-node-incorrect-syntax-near/98910 "2025-09-02T08:56:15Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![lev36](https://avatars.discourse-cdn.com/v4/letter/l/82dd89/32.png) [@lev36](https://discourse.nodered.org/u/lev36)\
**Post date:** [2 September 2025 08:56 UTC](https://discourse.nodered.org/t/mssql-node-incorrect-syntax-near/98910/1 "2025-09-02T08:56:15Z")

</div>

I am trying to write some data in SQL server via MSSQL node. I connected the node to the server and in the flow correctly, written the query in editor mode, but when I deploy the flow, it sends back the error: “Incorrect syntax near ‘,’.”

My query:

```auto
INSERT INTO [dbo].[TEST_NodeRed]
            ([Sch1],
            [Sch12],
            [Sch16]
            ) VALUES
            ({{{payload.Sch1}}},
            {{{payload.Sch12}}},
            {{{payload.Sch16}}}
            )

```

I first tried to insert query via function node, but it worked even worse than now.

The error occurs once every 10 s.

Thanks in advance.

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [2 September 2025 11:04 UTC](https://discourse.nodered.org/t/mssql-node-incorrect-syntax-near/98910/2 "2025-09-02T11:04:26Z")

</div>

Did you connect a debug node and check the actual statement ? ie. are all values populated ?

---

<div class="post-metadata">

**Author:** ![kitori](https://avatars.discourse-cdn.com/v4/letter/k/f08c70/32.png) [@kitori](https://discourse.nodered.org/u/kitori)\
**Post date:** [2 September 2025 11:27 UTC](https://discourse.nodered.org/t/mssql-node-incorrect-syntax-near/98910/3 "2025-09-02T11:27:43Z")

</div>

missing 'quotes’ for string variables?

---

<div class="post-metadata">

**Author:** ![lev36](https://avatars.discourse-cdn.com/v4/letter/l/82dd89/32.png) [@lev36](https://discourse.nodered.org/u/lev36)\
**Post date:** [2 September 2025 11:32 UTC](https://discourse.nodered.org/t/mssql-node-incorrect-syntax-near/98910/4 "2025-09-02T11:32:00Z")

</div>

Yes I did. I tried it also with only one column and one value and it works, but when I try to put in whole object (84 elements) it returns the error. I tried also splitting one MSSQL node into 4 to reduce traffic going through one node, and it doesn’t write the data simultaneously into database.

---

<div class="post-metadata">

**Author:** ![lev36](https://avatars.discourse-cdn.com/v4/letter/l/82dd89/32.png) [@lev36](https://discourse.nodered.org/u/lev36)\
**Post date:** [2 September 2025 11:34 UTC](https://discourse.nodered.org/t/mssql-node-incorrect-syntax-near/98910/5 "2025-09-02T11:34:14Z")

</div>

There are no string variables. object values are all float numbers

---

<div class="post-metadata">

**Author:** ![kitori](https://avatars.discourse-cdn.com/v4/letter/k/f08c70/32.png) [@kitori](https://discourse.nodered.org/u/kitori)\
**Post date:** [2 September 2025 11:36 UTC](https://discourse.nodered.org/t/mssql-node-incorrect-syntax-near/98910/6 "2025-09-02T11:36:09Z")

</div>

Can you try set this setting?

Then the error is send to the output and you see the query which is failing

![grafik](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/d/7/d7ab5005faf21b13b32290934c1369a905607e42.png)

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [2 September 2025 11:37 UTC](https://discourse.nodered.org/t/mssql-node-incorrect-syntax-near/98910/7 "2025-09-02T11:37:51Z")

</div>

Well it sounds like you are missing values (occasionaly) ?

---

<div class="post-metadata">

**Author:** ![lev36](https://avatars.discourse-cdn.com/v4/letter/l/82dd89/32.png) [@lev36](https://discourse.nodered.org/u/lev36)\
**Post date:** [2 September 2025 11:44 UTC](https://discourse.nodered.org/t/mssql-node-incorrect-syntax-near/98910/8 "2025-09-02T11:44:15Z")

</div>

I made a function node that checks if the object has all the keys in it. If not, it adds the key, with value 0, so I don’t know how would there be missing values.

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [2 September 2025 11:48 UTC](https://discourse.nodered.org/t/mssql-node-incorrect-syntax-near/98910/9 "2025-09-02T11:48:24Z")

</div>

You better believe it: a database does not generate incorrect errors. Do you perhaps have a trailing `,` for the last key/value (when you generate a missing one) ?

---

<div class="post-metadata">

**Author:** ![lev36](https://avatars.discourse-cdn.com/v4/letter/l/82dd89/32.png) [@lev36](https://discourse.nodered.org/u/lev36)\
**Post date:** [2 September 2025 11:54 UTC](https://discourse.nodered.org/t/mssql-node-incorrect-syntax-near/98910/10 "2025-09-02T11:54:19Z")

</div>

I don’t see anywhere any extra `,`. I mean the node is writting data in database it’s just that every 10-20 s this error will come up, then it recconects to server and continue writting data.

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [2 September 2025 12:28 UTC](https://discourse.nodered.org/t/mssql-node-incorrect-syntax-near/98910/11 "2025-09-02T12:28:24Z")

</div>

I think anyone trying to investigate this error probably needs to see the query as it is passed to the database, ie after substitution of those payload properties. An example that inserts without error and one that fails

---

<div class="post-metadata">

**Author:** ![lev36](https://avatars.discourse-cdn.com/v4/letter/l/82dd89/32.png) [@lev36](https://discourse.nodered.org/u/lev36)\
**Post date:** [2 September 2025 12:59 UTC](https://discourse.nodered.org/t/mssql-node-incorrect-syntax-near/98910/12 "2025-09-02T12:59:43Z")

</div>

This is the query, that gets inserted in node (at least what I can copy):

```auto
INSERT INTO [dbo].[TEST_NodeRed]
           ([Pum4002], [Pum600], [Pum800], [Met], [Pot45-2], [Sch], [Sch2], [Sax], [Pot45], [Rya], [Sua], [Sua125], [Wal], [Any], [Sua100], [Cor], [Kik], [Rap2], [Kas8_6], [KasHB250], [Teh], [BpvA32], [BpvC33], [MazA16], [MCFV2080C230], [GoeB61], [GoeA33], [GoeA35], [MCFVA11], [GoeA37], [GoeB41], [MCFVA13], [GoeA41], [GoeB43], [MCFVA14], [GoeB42], [GoeC36], [TosB33], [GoeC42], [GoeC43], [TosA21], [GoeC44], [PorC61], [Kas113], [RefA36], [RefA42], [KasA144], [RefU12], [Taj214], [Kas115], [Ann], [FSQA22], [Meb116], [FsqC22], [RcIbaB37], [TOB], [MatB35], [MatB36], [MatC24], [MatC25], [MazA15], [Fav600], [MatA23], [HvrDoo], [Sek], [StrM1Pa45], [StrM63], [Nil], [Pum400], [Ras], [Sch1], [Sch12], [Sch16], [Gka3v], [Guk1p], [Ilr], [Mas], [Rap22], [Tos], [Uni], [Wot1], [Wot2], [KasA3_3], [Peg])
     VALUES
           (7.725311279296875, 9.633787155151367, 8.745548248291016, 15.323267936706543, 2.598156690597534, 1.4337043762207031, 0.010342753492295742, 4.4619...

```

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [2 September 2025 13:12 UTC](https://discourse.nodered.org/t/mssql-node-incorrect-syntax-near/98910/13 "2025-09-02T13:12:02Z")

</div>

You can set the debug node to output to the system console, which will be a file somewhere. I guess you are running Node-red on a PC so I don't know where this file will be.

Alternatively you could use a Write File node to save the query into a file, and thus get to see the whole query.

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [2 September 2025 13:39 UTC](https://discourse.nodered.org/t/mssql-node-incorrect-syntax-near/98910/14 "2025-09-02T13:39:35Z")

</div>

> [@lev36](#):
>
> ```auto
> INSERT INTO [dbo].[TEST_NodeRed]
> ([Sch1],
> [Sch12],
> [Sch16]
> ) VALUES
> ({{{payload.Sch1}}},
> {{{payload.Sch12}}},
> {{{payload.Sch16}}}
> )
> 
> ```

Dont use mustache. It is slower, can lead to syntax issues in the final query (especially if values are strings) and in the worst case can open the door to SQL injection hacks.

Use the built in parameter mapping.

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/1/a172ac0a83ce37c639b8eac760afbe1728740c4c.png)

1. use `@named` parameters
2. map from msg (or whatever) to as type and named parameter
3. disable mustache
4. use driver output

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [1 December 2025 13:39 UTC](https://discourse.nodered.org/t/mssql-node-incorrect-syntax-near/98910/15 "2025-12-01T13:39:47Z")

</div>

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
