Forum Discussion
Dynamical generate values with Script Activity with SQL Insert
- 10 months ago
Build the VALUES string in one go (preferred solution to try)
Instead of looping, you can use an expression to flatten your array into a SQL VALUES string.
@concat( 'INSERT INTO mytbl (mynum, myval) VALUES ', join( select(activity('Lookup1').output.value, concat('(', item().mynum, ', ''', item().myval, ''')')), ',' ) )This generates the following, You can then feed this single string into a Script activity as @{...}.
INSERT INTO mytbl (mynum, myval) VALUES (1,'A'),(2,'A'),(3,'ZZ')
/Or/
ForEach + Script (row-by-row)
If the dataset is small and you do not care about performance, wrap your INSERT in a ForEach.
This will execute one insert per item. It is slower but easier to reason about.
Inside ForEach, use Script activity with: INSERT INTO mytbl (mynum, myval) VALUES (@{item().mynum}, '@{item().myval}')
- 9 months ago
Did not work. Required ForEach activity with Append Variable activity. Similar to this solution:
https://community.fabric.microsoft.com/t5/Service/Formatting-Array-Variable-as-HTML-inside-Fabric-Data-Pipeline/m-p/3933628
Hi P_work,
I hope the above details help you fix the issue. If you still have any questions or need more help, feel free to reach out. We are always here to support you.
Regards,
Community Support team.
Hi P_work,
I wanted to follow up and see if you have had a chance to review the information that was shared. If you have any additional questions or need further clarification, please don’t hesitate to reach out. I am here to assist with any concerns you might have.
Regards,
Community Support Team.