I've been trying to figure out what's wrong with this dynamic SQL insert statement. Apparently, when I pass it a string of values to insert, the error it causes makes it seem like its parsing correctly, but it says it doesn't match the number of columns specified in the statement. I've attached the table definition I'm inserting the data into, the dynamic statement, and the values parameter below:
The M2016_Field_ID column is an identity column and shouldn't need to be inserted, the same with the Enabled_ON column which has a default constraint that assigns the current date.
@valuesList = '(''description'', ''0,0'')'
SET @sql = N' INSERT INTO tblM2016_MetaData_Fields ' +
N' (Name, FieldNum) ' +
N' VALUES (@values);';
SET @params = N'@values nvarchar(max)';
IF @debug = 1
BEGIN
PRINT @sql;
PRINT @params;
PRINT @valuesList;
END
ELSE
EXEC sp_executesql @sql, @params, @values = @valuesList;
It throws the following error when I try to execute the statement:
Msg 109, Level 15, State 1, Line 3
There are more columns in the INSERT statement than values specified in the VALUES clause. The number of values in the VALUES clause must match the number of columns specified in the INSERT statement.

insertand only one column in thevalues. Just because a string might contain commas doesn't turn it into multiple values.