Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

aktualizacja sql z dynamicznymi nazwami kolumn

Masz mieszankę SQL i dynamicznego SQL w swoim zapytaniu względem information_schema . Również QUOTENAME nie jest konieczne w klauzuli where i faktycznie uniemożliwi dopasowanie, ponieważ SQL Server przechowuje column_name , a nie [column_name] , w metadanych. Na koniec zmienię go na sys.columns ponieważ w ten sposób powinniśmy wyprowadzać metadane w SQL Server . Wypróbuj:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znajdź zależność kolumny

  2. Jak używać klauzuli Where w instrukcji Select w SQL Server — samouczek SQL Server / TSQL, część 109

  3. Uzyskaj informacje o kolumnie dla tabeli lub widoku w programie SQL Server (T-SQL:sp_columns)

  4. Problem z wdrożeniem raportu SSRS 2014

  5. Unikaj kolumn NULL, używając DEFAULT Empty String