Как вы возвращаете имена столбцов таблицы? - PullRequest
219 голосов
/ 01 марта 2009

Как бы вернуть имена столбцов таблицы с использованием SQL Server 2008? то есть таблица содержит эти столбцы: идентификатор, имя, адрес, страну, и я хочу вернуть их как данные.

Ответы [ 19 ]

365 голосов
/ 01 марта 2009

Не уверен, есть ли более легкий путь в версии 2008 года.

USE [Database Name]
SELECT COLUMN_NAME,* 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'YourTableName' AND TABLE_SCHEMA='YourSchemaName'
100 голосов
/ 12 июля 2012

Это самый простой способ

exec sp_columns [tablename]
31 голосов
/ 01 марта 2009

Как то так?

sp_columns @table_name=your table name
13 голосов
/ 01 марта 2009

Один из методов заключается в запросе системных столбцов:

select
   syscolumns.name as [Column],
   syscolumns.xusertype as [Type],
   sysobjects.xtype as [Objtype]
from 
   sysobjects 
inner join 
   syscolumns on sysobjects.id = syscolumns.id
where sysobjects.xtype = 'u'
and   sysobjects.name = 'MyTableName'
order by syscolumns.name
9 голосов
/ 05 июня 2013

Это кажется немного проще, чем приведенные выше предложения, потому что он использует функцию OBJECT_ID () , чтобы найти идентификатор таблицы. Любой столбец с таким идентификатором является частью таблицы.

SELECT * 
  FROM syscolumns 
 WHERE id=OBJECT_ID('YOUR_TABLE') 

Я обычно использую подобный запрос, чтобы увидеть, присутствует ли столбец, который я знаю, является частью более новой версии. Это тот же запрос с добавлением {AND name = 'YOUR_COLUMN'} к предложению where.

IF EXISTS (
        SELECT * 
          FROM syscolumns 
         WHERE id=OBJECT_ID('YOUR_TABLE') 
           AND name='YOUR_COLUMN'
        )
BEGIN
    PRINT 'Column found'
END
7 голосов
/ 20 мая 2016

попробуйте

select * from <tablename> where 1=2

...............................................

4 голосов
/ 17 сентября 2014

Следующее похоже на первый предложенный выше запрос, но иногда вам нужно указать базу данных, чтобы она заработала. Обратите внимание, что запрос также должен работать без указания TABLE_SCHEMA:

SELECT COLUMN_NAME
FROM   YOUR_DB_NAME.INFORMATION_SCHEMA.COLUMNS
WHERE  TABLE_NAME = 'YOUR_TABLE_NAME' AND TABLE_SCHEMA = 'YOUR_DB_NAME'
4 голосов
/ 19 ноября 2012

Я использую

SELECT st.NAME, sc.NAME, sc.system_type_id
FROM sys.tables st
INNER JOIN sys.columns sc ON st.object_id = sc.object_id
WHERE st.name LIKE '%Tablename%'
2 голосов
/ 11 июня 2015

USE[Database] SELECT TABLE_NAME,TABLE_SCHEMA,[Column_Name],[Data_type] FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='dbo'

2 голосов
/ 22 октября 2012

Почему бы просто не попробовать это:

щелкните правой кнопкой мыши таблицу -> Таблица сценариев как -> Создать в -> Новый редактор запросов Окно

Весь список столбцов приведен в скрипте. Скопируйте его и при необходимости используйте поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...