Jak uzyskać nazwy kolumn z tabeli w SQL Server?
Chciałbym zapytać o nazwę wszystkich kolumn tabeli. Znalazłem jak to zrobić w:
Ale muszę wiedzieć: Jak można to zrobić w Microsoft SQL Server (w moim przypadku 2008)?
17 answers
Możesz uzyskać te informacje i wiele, wiele więcej, pytając o widoki schematu informacyjnego .
To przykładowe zapytanie:
SELECT *
FROM Northwind.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'
Mogą być wykonane przez wszystkie te obiekty DB:
- CHECK_CONSTRAINTS
- COLUMN_DOMAIN_USAGE
- COLUMN_PRIVILEGES
- Kolumny
- CONSTRAINT_COLUMN_USAGE
- CONSTRAINT_TABLE_USAGE
- DOMAIN_CONSTRAINTS
- domeny
- KEY_COLUMN_USAGE
- parametry
- REFERENTIAL_CONSTRAINTS
- procedury
- ROUTINE_COLUMNS
- SCHEMATA
- TABLE_CONSTRAINTS
- TABLE_PRIVILEGES
- tabele
- VIEW_COLUMN_USAGE
- VIEW_TABLE_USAGE
- VIEWS
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-04 11:53:27
Możesz użyć procedury składowanej sp_columns, która zwróci informacje dotyczące wszystkich kolumn dla danej tabeli. Więcej informacji można znaleźć tutaj http://msdn.microsoft.com/en-us/library/ms176077.aspx
Można to również zrobić za pomocą zapytania SQL. Coś takiego powinno pomóc -
SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName')
Lub odmianą byłoby:
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
Pobiera wszystkie kolumny ze wszystkich tabel, uporządkowane według nazwy tabeli, a następnie według nazwy kolumny.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-05 12:48:06
select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'
Jest to lepsze niż otrzymywanie z sys.columns
, ponieważ pokazuje DATA_TYPE
bezpośrednio.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-17 15:51:54
Możesz użyć sp_help
w SQL Server 2008.
sp_help <table_name>;
Skróty klawiaturowe dla powyższego polecenia: wybierz nazwę tabeli (tzn. zaznacz ją) i naciśnij ALT+F1 .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-06 15:12:35
Używając tego zapytania otrzymujesz odpowiedź:
select Column_name
from Information_schema.columns
where Table_name like 'table name'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-26 14:21:04
Możesz napisać to zapytanie, aby uzyskać nazwę kolumny i wszystkie szczegóły bez użycia INFORMATION_SCHEMA w MySql:
SHOW COLUMNS FROM database_Name.table_name;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-19 12:37:25
--jest to kolejna odmiana używana do dokumentowania dużej bazy danych do konwersji (edytowana do --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
--w lewym połączeniu, c. type jest zastępowane przez c. xtype, aby uzyskać typy varchar
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-26 08:07:50
SELECT name
FROM sys.columns
WHERE object_id = OBJECT_ID('TABLE_NAME')
// TABLE_NAME is your table
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-25 08:19:16
SELECT column_name, data_type, character_maximum_length, table_name,ordinal_position, is_nullable
FROM information_schema.COLUMNS WHERE table_name LIKE 'YOUR_TABLE_NAME'
ORDER BY ordinal_position
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-23 18:14:14
Możesz spróbować tego.To daje wszystkie nazwy kolumn wraz z ich odpowiednimi typami danych.
desc <TABLE NAME> ;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-27 12:31:04
W tym pytaniu brakuje następującego podejścia:
-- List down all columns of table 'Logging'
select * from sys.all_columns where object_id = OBJECT_ID('Logging')
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-27 19:13:53
Po prostu uruchom to polecenie
EXEC sp_columns 'Nazwa Twojej Tabeli'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-23 05:41:03
Sprawdzi czy dany table
jest tabela bazowa.
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'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-08 14:28:01
Możesz użyć tego zapytania
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME like N'%[ColumnName]%' and TABLE_NAME = N'[TableName]'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-30 07:43:33
SELECT c.Name
FROM sys.columns c
JOIN sys.objects o ON o.object_id = c.object_id
WHERE o.object_id = OBJECT_ID('TABLE_NAME')
ORDER BY c.Name
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-09 21:34:33
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'name_of_your_table'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-04 16:04:09
Inną opcją, która jest prawdopodobnie bardziej intuicyjna, jest:
SELECT [name]
FROM sys.columns
WHERE object_id = OBJECT_ID('[yourSchemaType].[yourTableName]')
To daje Ci wszystkie nazwy kolumn w jednej kolumnie.
Jeśli zależy ci na innych metadanych, możesz zmienić polecenie Edytuj SELECT na SELECT *
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-24 17:12:09