sql獲取列
1. sql語句查詢一個表的列數
看的出來你初學,可以先看看資料庫基礎,以EXCEL表格的方法給你講一遍。
count(name) 查找出來的行數(看成EXCEL中以某一些條件找出來的行數)
syscolumns 表的名字 (看成EXCEL中的工作表A名)
id 表裡的一個欄位 (看出EXCEL中的某一列)
sysobjects 表的名字 (看成EXCEL中的工作表B名)
xtype='u' 一個欄位=U (看出EXCEL中的某一列=U這個字元)
2. Sql 語句。獲取指定表的列名
--isnull函數:需要個參數,如果第一個參數為空,則賦值第二個參數。
SELECT
--空格代表as關鍵字
( CASE WHEN a.colorder = 1 THEN d.name
ELSE ''
END ) 表名 ,
a.colorder 欄位序號 ,
a.name 欄位名 ,
( CASE WHEN COLUMNPROPERTY(a.id, a.name, 'IsIdentity') = 1 THEN '√'
ELSE ''
END ) 標識 ,
( CASE WHEN ( SELECT COUNT(*)
FROM sysobjects
WHERE ( name IN (
SELECT name
FROM sysindexes
WHERE ( id = a.id )
AND ( indid IN (
SELECT indid
FROM sysindexkeys
WHERE ( id = a.id )
AND ( colid IN (
SELECT
colid
FROM
syscolumns
WHERE
( id = a.id )
AND ( name = a.name ) ) ) ) ) ) )
AND ( xtype = 'PK' )
) > 0 THEN 'true'
ELSE 'false'
END ) 主鍵 ,
b.name 類型 ,
a.length 佔用位元組數 ,
COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS 長度 ,
ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS 小數位數 ,
( CASE WHEN a.isnullable = 1 THEN 'true'
ELSE 'false'
END ) 允許空 ,
ISNULL(e.text, '') 默認值 ,
ISNULL(g.[value], '') AS 欄位說明
--a代表列集合表:為每個表和視圖中的每列返回一行,並為資料庫中的存儲過程的每個參數返回一行
--b代表列類型表:為資料庫中定義的每種系統提供的數據類型和每種用戶定義的數據類型返回一行。
FROM syscolumns a
LEFT JOIN systypes b ON a.xtype = b.xusertype
--d代表對象表:在資料庫中創建的每個對象(例如約束、默認值、日誌、規則以及存儲過程)都對應一行
INNER JOIN sysobjects d ON a.id = d.id
AND d.xtype = 'U'
AND d.name <> 'dtproperties'
--e代表e.text是默認值:包含資料庫中每個視圖、規則、默認值、觸發器、CHECK 約束、DEFAULT 約束和存儲過程的項
LEFT JOIN syscomments e ON a.cdefault = e.id
--g代表g.[value]是欄位說明:針對當前資料庫中的每個擴展屬性返回一行。
LEFT JOIN sys.extended_properties g ON a.id = g.major_id
AND a.colid = g.major_id
ORDER BY a.id ,
a.colorder
這個方法可以獲取當前庫存中所有表的所有列。希望對你有用。
3. 獲取一個表包含的列名的sql語句是什麼
在SQL Server中,查詢某個表的列名及其相關信息的SQL語句如下:
SELECT SysObjects.Name as TableName, SysColumns.Name as ColumnsName, SysTypes.Name as DataType, SysColumns.Length as DataLength, SysProperties.Value as Remark FROM SysObjects, SysTypes, SysColumns
LEFT JOIN SysProperties ON (Syscolumns.Id = Sysproperties.Id AND Syscolumns.Colid = Sysproperties.Smallid)
WHERE (Sysobjects.Xtype ='u' OR Sysobjects.Xtype ='v') AND Sysobjects.Id = Syscolumns.Id AND SysTypes.XType = Syscolumns.XType AND SysTypes.Name <> 'sysname' AND SysObjects.name = '表名'
運行此查詢後,結果集將展示出表名、列名、數據類型、長度以及描述信息。
根據需求,您可以自行調整查詢語句中的部分參數,比如修改'表名'為實際的表名,或者調整查詢的列名。