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, '');
プレ>