2016-04-25 6 views
2

Ich bin in der Lage mit Spaltennamen und Datentypen aus einer Datenbanktabelle zu erhalten:Wie erhalte ich in SQL Server 2012 den Spaltennamen und den Datentyp aus einer Ansicht, Funktion oder gespeicherten Prozedur?

SELECT COLUMN_NAME, DATA_TYPE 
FROM information_schema.columns 
WHERE TABLE_NAME = 'xxx' 

Wie kann ich die Spaltennamen und Datentyp aus einer Ansicht, Funktion oder gespeicherte Prozedur erhalten? Ich stelle mir vor, dass ich sie mit den Ergebnissen jedes einzelnen erhalten muss, aber ich bin mir nicht sicher.

Danke für die Hilfe

+2

Ansichtspalten werden auch in information_schema.columns gefunden. – jarlh

+5

Für einen SP siehe http://stackoverflow.com/questions/14574773/retrieve-column-names-and-types-of-stored-procedure –

Antwort

2

Spalten für Ansicht:

SELECT * FROM sys.columns c where c.object_id = OBJECT_ID('<schema>.<view name>') 

Spalten für Tabellenwertfunktion:

SELECT * FROM INFORMATION_SCHEMA.ROUTINE_COLUMNS rc WHERE rc.TABLE_NAME = '<udf name>' 

Spalten für gespeicherte Prozedur

für SQL Server 2012 und höher:

SELECT name, system_type_name 
FROM sys.dm_exec_describe_first_result_set_for_object 
(
    OBJECT_ID('<shcema>.<sp name>'), 
    NULL 
); 

Entnommen Retrieve column names and types of a stored procedure?. Lesen Sie die Antworten dort nach Möglichkeiten, dies zu tun (zum Beispiel mit pre 2012).

Verwandte Themen