Jak mam zwrócić nazwy kolumn tabeli przy użyciu SQL Server 2008? tzn. tabela zawiera te kolumny - id, nazwa, adres, kraj i chcę je zwrócić jako dane.
sql
sql-server
tsql
Belliez
źródło
źródło
To jest najłatwiejszy sposób
źródło
Coś takiego?
źródło
Jedną z metod jest zapytanie kwerend systemowych:
źródło
Objtype
kolumna jest zbędna :)Wydaje się to nieco łatwiejsze niż powyższe sugestie, ponieważ używa funkcji OBJECT_ID () do zlokalizowania identyfikatora tabeli. Każda kolumna o tym identyfikatorze jest częścią tabeli.
Często używam podobnego zapytania, aby sprawdzić, czy kolumna, którą znam, jest częścią nowszej wersji, jest obecna. Jest to to samo zapytanie z dodatkiem {AND name = 'YOUR_COLUMN'} do klauzuli where.
źródło
Spróbuj tego
...............................................
źródło
WHERE 1=2
i nadal zwróci metadane z kolumny. Jeśli używasz interfejsu programistycznego, takiego jak ODBC, to informacje o kolumnie są dostępne jako lista / tablica z obiektu kursora w programie, czego szukałem. Może to nie mieć sensu w czystym kontekście SQL, ale jest zwięzłym podejściem podczas łączenia się z bazą danych przez Python / Java / C / itp.Poniższe wydaje się być jak pierwsze sugerowane zapytanie powyżej, ale czasami musisz określić bazę danych, aby działała. Pamiętaj, że zapytanie powinno również działać bez określania TABELI_SCHEMA:
źródło
używam
źródło
Dlaczego nie spróbować tego:
Cała lista kolumn jest podana w skrypcie. Skopiuj go i użyj pól w razie potrzeby.
źródło
"I want to return these as data"
, podczas gdy twoja odpowiedź otrzyma wartości, prawdopodobnie OP chce danych w czasie wykonywania.USE[Database] SELECT TABLE_NAME,TABLE_SCHEMA,[Column_Name],[Data_type] FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='dbo'
źródło
źródło
Nie jestem pewien, czy wartość syscolumns.colid jest taka sama, jak wartość „ORDINAL_POSITION” zwracana jako część sp_columns, ale w dalszej części używam jej w ten sposób - mam nadzieję, że nie mylę ...
Oto niewielka odmiana niektórych innych odpowiedzi, które znalazłem - używam tego, ponieważ „pozycja” lub kolejność kolumny w tabeli jest ważna w mojej aplikacji - w zasadzie muszę wiedzieć, co nazywa się kolumna (n) ?
sp_columns zwraca całą masę obcych rzeczy, a ja jestem bardziej wygodny z funkcjami select niż T-SQL, więc wybrałem tę trasę:
źródło
Chociaż odpowiedź @Gulzara Nazima jest świetna, prawdopodobnie łatwiej jest dołączyć do zapytania nazwę bazy danych , co można uzyskać za pomocą następującego kodu SQL.
źródło
Możesz użyć poniższego kodu, aby wydrukować wszystkie nazwy kolumn; Możesz także zmodyfikować kod, aby wydrukować inne szczegóły w dowolnym formacie
Wynik
Aby użyć tego samego kodu do wydrukowania tabeli i jej nazwy kolumny jako klasy C #, użyj poniższego kodu:
Wynik:
źródło
Używam tylko zapytania takiego jak wspomniany Martin Smith, tylko trochę krótszego:
źródło
źródło
Ponieważ SysColumns jest przestarzałe , użyj
Sys.All_Columns
:Select * From Sys.Types
przyniesieuser_type_id = ID
tego typu. Jest to unikalne w obrębie bazy danych. Dla typów danych System:user_type_id = system_type_id
.źródło
źródło
Jeśli pracujesz z postgresql, istnieje możliwość, że więcej niż jeden schemat może mieć tabelę o tej samej nazwie, w takim przypadku zastosuj poniższe zapytanie
źródło
źródło