odi*_*seh 648 sql t-sql sql-server sql-server-2008
我想查询表的所有列的名称.我找到了如何做到这一点:
但我需要知道:如何在Microsoft SQL Server(在我的情况下为2008)中完成此操作?
小智 779
此示例查询:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'
Run Code Online (Sandbox Code Playgroud)
可以在所有这些DB对象上进行:
Arn*_*shn 187
您可以使用存储过程sp_columns,它将返回与给定表的所有列有关的信息.更多信息可以在这里找到http://msdn.microsoft.com/en-us/library/ms176077.aspx
您也可以通过SQL查询来完成.这样的事情应该有所帮助 -
SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName')
Run Code Online (Sandbox Code Playgroud)
或者变化是:
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
Run Code Online (Sandbox Code Playgroud)
这将获取所有表中的所有列,按表名排序,然后按列名排序.
Lim*_*min 142
select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'
Run Code Online (Sandbox Code Playgroud)
这比获取更好,sys.columns因为它DATA_TYPE直接显示.
mr_*_*air 54
您可以sp_help在SQL Server 2008中使用.
sp_help <table_name>;
Run Code Online (Sandbox Code Playgroud)
上述命令的键盘快捷方式:选择表名(即突出显示)并按ALT+ F1.
Kul*_*MCA 43
通过使用此查询,您可以得到答案:
select Column_name
from Information_schema.columns
where Table_name like 'table name'
Run Code Online (Sandbox Code Playgroud)
Sac*_*rse 34
您可以编写此查询以获取列名称和所有详细信息,而无需在MySql中使用INFORMATION_SCHEMA:
SHOW COLUMNS FROM database_Name.table_name;
Run Code Online (Sandbox Code Playgroud)
小智 25
- 这是用于记录大型数据库进行转换的另一种变体(编辑为 - 删除静态列)
--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
Run Code Online (Sandbox Code Playgroud)
- 在左连接中,c.type被c.xtype替换以获取varchar类型
bst*_*cks 20
SELECT name
FROM sys.columns
WHERE object_id = OBJECT_ID('TABLE_NAME')
Run Code Online (Sandbox Code Playgroud)
// TABLE_NAME是你的桌子
off*_*dal 18
您可以尝试使用:-
USE db_name;
DESCRIBE table_name;
Run Code Online (Sandbox Code Playgroud)
它会给你列名和类型。
Mus*_*afa 17
在 SQL Server 中,您可以从 中选择 COLUMN_NAME INFORMATION_SCHEMA.COLUMNS。
这是代码:
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='YourTableName'
Run Code Online (Sandbox Code Playgroud)
小智 15
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
Run Code Online (Sandbox Code Playgroud)
Nev*_*ess 11
这个问题缺少以下方法:
-- List down all columns of table 'Logging'
select * from sys.all_columns where object_id = OBJECT_ID('Logging')
Run Code Online (Sandbox Code Playgroud)
小智 11
只需运行此命令
EXEC sp_columns 'Your Table Name'
Run Code Online (Sandbox Code Playgroud)
它将检查给定的是否table是基表.
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'
Run Code Online (Sandbox Code Playgroud)
你可以使用这个查询
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME like N'%[ColumnName]%' and TABLE_NAME = N'[TableName]'
Run Code Online (Sandbox Code Playgroud)
小智 5
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
Run Code Online (Sandbox Code Playgroud)
另一种可以说更直观的选项是:
SELECT [name]
FROM sys.columns
WHERE object_id = OBJECT_ID('[yourSchemaType].[yourTableName]')
Run Code Online (Sandbox Code Playgroud)
这将在单个列中为您提供所有列名称。如果您关心其他元数据,您可以更改编辑 SELECT STATEMENT TO SELECT *。
总结答案
我可以看到许多不同的答案和方法来做到这一点,但这其中有一个问题,那就是objective.
是的,目标。如果你想要only know列名,你可以使用
SELECT * FROM my_table WHERE 1=0
or
SELECT TOP 0 * FROM my_table
Run Code Online (Sandbox Code Playgroud)
但是,如果您想在use某处使用这些列或简单地说出manipulate它们,那么上面的快速查询将没有任何用处。你需要使用
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'Customers'
Run Code Online (Sandbox Code Playgroud)
了解某些特定列的另一种方法,其中我们需要一些类似的列
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME like N'%[ColumnName]%' and TABLE_NAME = N'[TableName]'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1574317 次 |
| 最近记录: |