sql-server document - 我如何從SQL Server中的表中獲取列名?





what is (15)


- 這是用於記錄大型數據庫進行轉換的另一種變體(編輯為 - 刪除靜態列)

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 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



您可以在SQL Server 2008中使用sp_help

sp_help <table_name>;

快捷鍵為上述命令select table name (突出顯示它)並按下ALT + F1




SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'name_of_your_table'



通過使用這個查詢,你可以得到答案:

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



這個SO問題缺少以下方法:

-- List down all columns of table 'Logging'
select * from sys.all_columns where object_id = OBJECT_ID('Logging')



你可以試試這個。它給出了所有的列名和它們各自的數據類型。

desc <TABLE NAME> ;



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 name
FROM sys.columns
WHERE object_id = OBJECT_ID('TABLE_NAME')

// TABLE_NAME是你的表格




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

這比從sys.columns獲得更好,因為它直接顯示DATA_TYPE




只需運行這個命令

EXEC sp_columns'您的表名'




通過查詢信息模式視圖 ,您可以獲得這些信息以及更多信息

此示例查詢:

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

可以在所有這些數據庫對像上完成:




您可以編寫此查詢以獲取列名和所有詳細信息,而無需在MySql中使用INFORMATION_SCHEMA:

SHOW COLUMNS FROM database_Name.table_name;



它將檢查給定的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 2000中適用於我:

IF EXISTS 
(
    SELECT * 
    FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE table_name = 'table_name' 
    AND column_name = 'column_name'
)
BEGIN
...
END




sql sql-server sql-server-2008 tsql