Как мне вернуть имена столбцов таблицы, используя SQL Server 2008? то есть таблица содержит эти столбцы - идентификатор, имя, адрес, страну, и я хочу вернуть их как данные.
sql
sql-server
tsql
Belliez
источник
источник
Это самый простой способ
источник
Что-то вроде этого?
источник
Одним из методов является запрос к syscolumns:
источник
Objtype
колонку лишней, хотя :)Это кажется немного проще, чем приведенные выше предложения, потому что он использует функцию OBJECT_ID (), чтобы найти идентификатор таблицы. Любой столбец с таким идентификатором является частью таблицы.
Я обычно использую подобный запрос, чтобы увидеть, присутствует ли столбец, который я знаю, является частью более новой версии. Это тот же запрос с добавлением {AND name = 'YOUR_COLUMN'} к предложению where.
источник
попробуй это
...............................................
источник
WHERE 1=2
и будет по-прежнему возвращать метаданные столбца. Если используется программный интерфейс, такой как ODBC, то эта информация столбца доступна в виде списка / массива из объекта курсора в программе, что я и искал. Это может не иметь смысла в контексте чистого SQL, но это лаконичный подход при подключении к базе данных через Python / Java / C / и т. Д.Следующее похоже на первый предложенный выше запрос, но иногда вам нужно указать базу данных, чтобы она заработала. Обратите внимание, что запрос также должен работать без указания TABLE_SCHEMA:
источник
я использую
источник
Почему бы просто не попробовать это:
Весь список столбцов приведен в скрипте. Скопируйте его и используйте поля по мере необходимости.
источник
"I want to return these as data"
, что пока ваш ответ получит значения, скорее всего, ОП хочет получить данные во время выполнения.USE[Database] SELECT TABLE_NAME,TABLE_SCHEMA,[Column_Name],[Data_type] FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='dbo'
источник
источник
Я не уверен, совпадает ли значение syscolumns.colid со значением 'ORDINAL_POSITION', возвращаемым как часть sp_columns, но в дальнейшем я использую его таким образом - надеюсь, я не дезинформирую ...
Вот небольшая разница в некоторых других ответах, которые я нашел - я использую это, потому что «позиция» или порядок столбца в таблице важны для моего приложения - мне нужно знать, как называется «column (n)» ?
sp_columns возвращает целую кучу посторонних вещей, и мне удобнее использовать функции выбора, чем T-SQL, поэтому я пошел по этому пути:
источник
Хотя ответ @Gulzar Nazim велик, вероятно, проще включить в запрос имя базы данных , чего можно достичь с помощью следующего SQL.
источник
Вы можете использовать приведенный ниже код для печати всех имен столбцов; Вы также можете изменить код для печати других деталей в любом формате, который вам нравится
Вывод
Чтобы использовать тот же код для печати таблицы и имени ее столбца, что и в классе C #, используйте следующий код:
Вывод:
источник
Я просто использую запрос, как упоминал Мартин Смит, чуть короче:
источник
источник
Поскольку SysColumns устарела , используйте
Sys.All_Columns
:Select * From Sys.Types
дастuser_type_id = ID
тип. Это уникально в базе данных. Для системных типов данных:user_type_id = system_type_id
.источник
источник
Если вы работаете с postgresql, существует вероятность того, что более одной схемы могут иметь таблицу с одинаковым именем, в этом случае примените приведенный ниже запрос
источник
источник