when语法 - t-sql是什么




我如何从SQL Server中的表中获取列名? (11)

- 这是用于记录大型数据库进行转换的另一种变体(编辑为 - 删除静态列)

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

- 在左连接中,将c.type替换为c.xtype以获取varchar类型

我想查询表中所有列的名称。 我发现如何做到这一点:

但是我需要知道:这怎么能在Microsoft SQL Server (2008在我的情况下)中完成?


你可以使用这个查询

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME like N'%[ColumnName]%' and TABLE_NAME = N'[TableName]'

只需运行这个命令

EXEC sp_columns'您的表名'


它将检查给定的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'

您可以在SQL Server 2008中使用sp_help

sp_help <table_name>;

快捷键为上述命令select table name (突出显示它)并按下ALT + F1


您可以编写此查询以获取列名和所有详细信息,而无需在MySql中使用INFORMATION_SCHEMA:

SHOW COLUMNS FROM database_Name.table_name;

通过使用这个查询,你可以得到答案:

select Column_name 
from Information_schema.columns 
where Table_name like 'table name'

通过查询信息模式视图 ,您可以获得这些信息以及更多信息

此示例查询:

SELECT *
FROM Northwind.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'

可以在所有这些数据库对象上完成:


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

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

select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'

这比从sys.columns获得更好,因为它直接显示DATA_TYPE





tsql