poniedziałek, 14 maja 2012

Pobieranie listy kolumn

Potrzebowałem zapytania które zwróci mi listę wszystkich pól z tabeli, ale zwrócona lista miała być w postaci :
FIELD1, FIELD2, FIELD3, ...

Okazało się że zapytanie TSQL zwracające informacje w takiej postaci jest bardzo proste (przykłd dla tabeli CUSTTABLE:
DECLARE @ColumnList VARCHAR(MAX)

SELECT @ColumnList = COALESCE(@ColumnList +',' ,'') + A.SQLNAME
FROM DynamicsAx.DBO.SQLDICTIONARY A 
WHERE A.TABLEID = (SELECT TABLEID FROM DynamicsAx.DBO.SQLDICTIONARY WHERE NAME = 'CUSTTABLE' AND FIELDID = 0)
  AND A.FIELDID > 0
        
SELECT @ColumnList        
Wynik zapytania: