Aș dori să interogare numele de toate coloanele unui tabel. Am găsit cum să facă acest lucru în:
Dar trebuie să știți: cum poate fi făcut acest lucru în Microsoft SQL Server (2008 in cazul meu)?
Puteți obține aceste informații și mult, mult mai mult prin interogarea Informații Schema de vedere.
Acest exemplu de interogare:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'
Poate fi făcut de-a lungul DB obiecte:
Puteți utiliza proceduri stocate sp_columns care ar reveni de informații referitoare la toate coloanele dintr-un anumit tabel. Mai multe informații pot fi găsite aici http://msdn.microsoft.com/en-us/library/ms176077.aspx
De asemenea, puteți face printr-o interogare SQL. Ceva de genul asta ar trebui să ajute:
SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName')
Sau o variantă ar fi:
SELECT o.Name, c.Name
FROM sys.columns c
JOIN sys.objects o ON o.object_id = c.object_id
WHERE o.type = 'U'
ORDER BY o.Name, c.Name
Acest lucru se toate coloanele din toate tabelele, comandat de numele tabelului și apoi pe numele coloanei.
Puteți folosi sp_help în SQL Server 2008.
sp_help <table_name>;
Comandă rapidă de la tastatură pentru comanda de mai sus: selectați numele tabelului (am.e evidențiați-l) și apăsați ALT+F1.
--This is another variation used to document a large database for conversion (Edited to --remove static columns)
SELECT o.Name as Table_Name
, c.Name as Field_Name
, t.Name as Data_Type
, t.length as Length_Size
, t.prec as Precision_
FROM syscolumns c
INNER JOIN sysobjects o ON o.id = c.id
LEFT JOIN systypes t on t.xtype = c.xtype
WHERE o.type = 'U'
ORDER BY o.Name, c.Name
--In the left join, c.type is replaced by c.xtype to get varchar types
Doar rula această comandă
EXEC sp_columns 'Your Table Name'
Se va verifica dacă a dat masa
e Tabelul de Bază.
SELECT
T.TABLE_NAME AS 'TABLE NAME',
C.COLUMN_NAME AS 'COLUMN NAME'
FROM INFORMATION_SCHEMA.TABLES T
INNER JOIN INFORMATION_SCHEMA.COLUMNS C ON T.TABLE_NAME=C.TABLE_NAME
WHERE T.TABLE_TYPE='BASE TABLE'
AND T.TABLE_NAME LIKE 'Your Table Name'
O altă opțiune, care este, fără îndoială, mai intuitiv este:
SELECT [name]
FROM sys.columns
WHERE object_id = OBJECT_ID('[yourSchemaType].[yourTableName]')
Acest lucru vă oferă toate nume de coloane într-o singură coloană.
Dacă îți pasă de alte metadate, puteți schimba edit SELECT PENTRU a SELECT *
.