sql >> Database >  >> RDS >> Sqlserver

sql-update met dynamische kolomnamen

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



  1. Gegevensopslag:REST versus POSIX voor archieven en HSM

  2. hoe de tijd tussen twee tijdstempels te berekenen (PostgreSQL)

  3. De uitvoering van een instructie in PostgreSQL pauzeren

  4. Foutcode:1305. FUNCTIE of PROCEDURE bestaat niet