sql >> Base de Datos >  >> RDS >> Sqlserver

actualización de sql con nombres de columna dinámicos

Tiene una combinación de SQL y SQL dinámico en su consulta contra information_schema . También QUOTENAME no es necesario en la cláusula where y en realidad evitará una coincidencia, ya que SQL Server almacena column_name , no [column_name] , en los metadatos. Finalmente, voy a cambiarlo a sys.columns ya que esta es la forma debemos derivar metadatos en SQL Server . Prueba:

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