Je hebt een mix van SQL en dynamische SQL in je query tegen information_schema
. Ook QUOTENAME
is niet nodig in de where-clausule en voorkomt eigenlijk een overeenkomst, aangezien SQL Server column_name
opslaat , niet [column_name]
, in de metagegevens. Ten slotte ga ik het veranderen in sys.columns
aangezien dit de manier is we zouden metadata in SQL Server moeten afleiden
. Probeer:
SELECT @colnames += ',' + name
FROM Prod.sys.columns
WHERE OBJECT_NAME([object_id]) = @objname
AND name <> CASE WHEN @objname = 'TableXx' THEN 'ExcludeCol1' ELSE '' END
AND name <> CASE WHEN @objname = 'TableYy' THEN 'ExcludeCol2' ELSE '' END;
SET @colnames = STUFF(@colnames, 1, 1, '');