information_schema に対するクエリに SQL と動的 SQL が混在しています . QUOTENAME も SQL Server は column_name を格納するため、where 句では必要なく、実際には一致をまったく防ぎます。 、 [column_name] ではありません 、メタデータで。最後に、sys.columns に変更します。 これが 方法であるため、SQL Server でメタデータを取得する必要があります。
.試してみてください:
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, '');プレ>