Problem
The Microsoft SQL Server node shows major issues when performing basic ‘insert’ into the db processes.
Summary
Empty cells generate an error, I think this is due to the fact that it should pass a NULL value, but instead it passes an empty string.
Special characters like single quotes are not escaped. When you have a value that contains a single quote it will generate an error. Instead it should escape this by passing two single quotes ‘’.
It generates errors when part of a string contain only numbers and the letter ‘e’. It interprets this as an exponential number which is too large for the CPU, however, it is a string.\
Reference
I have posted detailed steps to reproduce, error logs and places in the code to sole this error in these Github issues:
(And one with issue number 1920, but I cannot add 2+ external hyperlinks)
Conclusion
Since we rely on the ‘insert’ functionality of the MSSQL Server node this makes N8N highly difficult to use for us in our operations. All our datasets contain one of these issues which at the moment resulted in not being able to deploy even a single Workflow for our clients. I hope this quickly gets resolved.
You can see the output data of the function, the row that causes the error is visible here.
Perhaps the type of Node that process the SQL Server node causes the difference.
No, that isn’t the issue, I checked and the ID column is a NVARCHAR(255).
Come to think of it. I remember seeing this error: "The floating point value ‘5767e365’ is out of the range of computer representation (8 bytes)."
…earlier in the function node itself. In my current workflow it shows up as an error in MS SQL but in another workflow I saw it in the Function Node. It might be a core N8N error instead of specific for MS SQL.
(I am not able to reproduce my earlier workflow, unfortunately.)
I have never seen that error in the function node, and it’s hard to fix it in the SQL Server node without replicating it . But if I understand correctly, that error it’s not happening anymore on your side?
Is it possible that you share (privately) the data and the database schema that you are using? Of course, you can change the sensitive information. Also, I can create an instance for you with the changes that I made. If I do so, can you test that the other two issues are solved on your side in that instance?