sql >> Databasteknik >  >> RDS >> Sqlserver

sql-uppdatering med dynamiska kolumnnamn

Du har en blandning av SQL och dynamisk SQL i din fråga mot information_schema . Även QUOTENAME är inte nödvändigt i where-satsen och kommer faktiskt att förhindra en matchning alls, eftersom SQL Server lagrar column_name , inte [column_name] , i metadata. Slutligen kommer jag att ändra det till sys.columns eftersom det är så bör vi härleda metadata i SQL Server . Försök:

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. Sphinx 2.0.4 Installationsfel med MAMP 2.0:Kan inte hitta MySQL Headers

  2. Hur djupkopierar jag en uppsättning data och ändrar FK-referenser till att peka på alla kopior?

  3. Konvertera data från MySQL till JSON med PHP

  4. Hur får jag resultatet av två select-satser på en enda rad?