information_schema
. के विरुद्ध आपकी क्वेरी में आपके पास SQL और डायनेमिक SQL का मिश्रण है . साथ ही QUOTENAME
जहां क्लॉज में जरूरी नहीं है और वास्तव में एक मैच को रोक देगा, क्योंकि SQL सर्वर column_name
स्टोर करता है , नहीं [column_name]
, मेटाडेटा में। अंत में, मैं इसे sys.columns
. में बदलने जा रहा हूं चूंकि यह तरीका है हमें SQL सर्वर में मेटाडेटा प्राप्त करना चाहिए
. कोशिश करें:
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, '');