sql獲取欄位的說明
⑴ sql,怎樣獲取表描述說明,以及欄位說明描述,
SELECT
[Table Name] = i_s.TABLE_NAME,
[Column Name] = i_s.COLUMN_NAME,
[Description] = s.value
FROM
INFORMATION_SCHEMA.COLUMNS i_s
LEFT OUTER JOIN
sysproperties s
ON
s.id = OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME)
AND s.smallid = i_s.ORDINAL_POSITION
AND s.name = 'MS_Description'
WHERE
OBJECTPROPERTY(OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME), 'IsMsShipped')=0
-- AND i_s.TABLE_NAME = 'table_name'
ORDER BY
i_s.TABLE_NAME, i_s.ORDINAL_POSITION
⑵ 微軟的sql2005中如何用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
⑶ 如何獲取SQL表欄位的注釋文本
WHERE (B.id = OBJECT_ID('表名稱'))SQL2005:select * from fn_listextendedproperty('MS_Description', 'user', 'dbo', 'table', '表名稱'', 'column', default)
注:次方法只能取出有注釋的欄位,如果指定表沒有注釋,則此方法不能獲取到任何記錄
⑷ c# sql語句怎麼讀取欄位說明
SELECT
(casewhena.colorder=1thend.nameelse''end)[數據表名稱],
a.colorder[列順序],
a.name[列名稱],
b.nameas[列類型],
b.lengthas[列長度],
g.[value]AS[列說明信息]
ona.xtype=b.xusertype
innerjoinsysobjectsd
ona.id=d.idandd.xtype='U'andd.name<>'dtproperties'
leftjoinsys.extended_propertiesg
ona.id=g.major_idANDa.colid=g.minor_id
WHEREd.[name]='IError'--數據表名稱
請參閱,如有疑問,及時溝通!
⑸ sql語句如何取得資料庫中表的欄位信息
select *from 表名 where 『列名1』=『值』,'列名2'='值'
例如從一個學生成績表(course)中查找語文不及格的學生
select * from course
where 『語文』<60
⑹ 通過sql語句如何輸出欄位的描述
如何得到資料庫中所有表欄位及欄位中文描述
以下資料,通過csdn的一位師兄從SQL版主那得到:
sql中
SELECT
(case when a.colorder=1 then d.name else '' end) N'表名',
a.colorder N'欄位序號',
a.name N'欄位名',
(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) N'標識',
(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 '√' else '' end) N'主鍵',
b.name N'類型',
a.length N'佔用位元組數',
COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'長度',
isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as N'小數位數',
(case when a.isnullable=1 then '√'else '' end) N'允許空',
isnull(e.text,'') N'默認值',
isnull(g.[value],'') AS N'欄位說明'
--into ##tx
FROM syscolumns a left join systypes b
on a.xtype=b.xusertype
inner join sysobjects d
on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join syscomments e
on a.cdefault=e.id
left join sysproperties g
on a.id=g.id AND a.colid = g.smallid
order by object_name(a.id),a.colorder
一個字,爽,還可以省去做DD時的好多麻煩.
如果不是很明白,可以將以上代碼放到SQL查詢分析器上運行一下就知道了(當然要打開一個資料庫啦)
⑺ SQL查詢欄位的說明
查出表的各個欄位的所有屬性
SELECT
表名 = case when a.colorder=1 then d.name else '' end,
表說明 = case when a.colorder=1 then isnull(f.value,'') else '' end,
欄位序號 = a.colorder,
欄位名 = a.name,
標識 = case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
主鍵 = case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (
SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid))) then '√' else '' end,
類型 = b.name,
佔用位元組數 = a.length,
長度 = COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小數位數 = isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允許空 = case when a.isnullable=1 then '√'else '' end,
默認值 = isnull(e.text,''),
欄位說明 = isnull(g.[value],'')
FROM
syscolumns a
left join
systypes b
on
a.xusertype=b.xusertype
inner join
sysobjects d
on
a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join
syscomments e
on
a.cdefault=e.id
left join
sysproperties g
on
a.id=g.id and a.colid=g.smallid
left join
sysproperties f
on
d.id=f.id and f.smallid=0
where
d.name='要查詢的表' --如果只查詢指定表,加上此條件
order by
a.id,a.colorder
⑻ 如何獲得SQL資料庫中備注欄位的內容
您好:
附一個語句,獲取表欄位屬性和注釋。
SELECT表名 =CASEWHENa.colorder=1THENd.nameELSE''END
,表說明 =CASEWHENa.colorder=1THENISNULL(f.value,'')ELSE''END
,欄位序號 =a.colorder
,欄位名 =a.name
,標識 =CASEWHENCOLUMNPROPERTY(a.id,a.name,'IsIdentity')=1THEN'√'ELSE''END
,主鍵 =CASEWHENEXISTS(='PK'ANDnameIN(
(
=a.idANDcolid=a.colid
)))THEN'√'ELSE''END
,類型 =b.name
,佔用位元組 =a.length
,長度 =COLUMNPROPERTY(a.id,a.name,'PRECISION')
,小數位數 =ISNULL(COLUMNPROPERTY(a.id,a.name,'Scale'),0)
,允許空 =CASEWHENa.isnullable=1THEN'√'ELSE''END
,默認值 =ISNULL(e.text,'')
,欄位說明 =ISNULL(g.[value],'')
FROMsyscolumnsa
LEFTJOINsystypesbONa.xusertype=b.xusertype
INNERJOINsysobjectsdONa.id=d.idANDd.xtype='U'ANDd.name<>'dtproperties'
LEFTJOINsyscommentseONa.cdefault=e.id
LEFTJOINsys.extended_propertiesgONa.id=g.major_idANDa.colid=g.minor_id
LEFTJOINsys.extended_propertiesfONd.id=f.major_idANDf.minor_id=0
--WHEREd.name='orders'--如果只查詢指定表,加上此條件
ORDERBYa.id,a.colorder
⑼ sql server 怎麼查詢數據欄位說明
SQL Server的注釋屬於擴展屬性,可以從sys.extended_properties視圖中查看
SELECT * FROM sys.extended_properties WHERE major_id=OBJECT_ID('WMSBASCUS')
結果是WMSBASCUS表所有列的注釋信息
minor_id是列的Id,可以從sys.columns中查看錶的列id
通過sys.extended_properties和sys.columns進行關聯可以查看某個具體列的信息
SELECT c.name,p.value
FROM sys.extended_properties p ,sys.columns c
WHERE p.major_id=OBJECT_ID('WMSBASCUS') and c.name='CUSTNO'
and p.major_id=c.object_id and p.minor_id=c.column_id
⑽ 如何在 sql server 2005 使用 sql 語句獲取欄位的說明信息
-- 是從其它地方直接拷貝過來的,我本機是2008,不好測試
-- 你找一個表名稱 替換一下試試
SELECT
表名=casewhena.colorder=1thend.nameelse''end,
表說明=casewhena.colorder=1thenisnull(f.value,'')else''end,
欄位序號=a.colorder,
欄位名=a.name,
標識=casewhenCOLUMNPROPERTY(a.id,a.name,'IsIdentity')=1then'√'else''end,
主鍵=casewhenexists(='PK'andparent_obj=a.idandnamein(
(
=a.idANDcolid=a.colid)))then'√'else''end,
類型=b.name,
佔用位元組數=a.length,
長度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小數位數=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允許空=casewhena.isnullable=1then'√'else''end,
默認值=isnull(e.text,''),
欄位說明=isnull(g.[value],'')
FROM
syscolumnsa
leftjoin
systypesb
on
a.xusertype=b.xusertype
innerjoin
sysobjectsd
on
a.id=d.idandd.xtype='U'andd.name<>'dtproperties'
leftjoin
syscommentse
on
a.cdefault=e.id
leftjoin
syspropertiesg
on
a.id=g.idanda.colid=g.smallid
leftjoin
syspropertiesf
on
d.id=f.idandf.smallid=0
where
d.name='要查詢的表'--如果只查詢指定表,加上此條件
orderby
a.id,a.colorder
-- 下面的是在2008電腦上面,親測可用
SELECT
ID=newid(),
欄位名=convert(varchar(100),a.name),
表名=convert(varchar(50),d.name),
庫名='WEPM_OA',
欄位說明=convert(varchar(50),isnull(g.[value],'')),
欄位說明=convert(varchar(50),isnull(g.[value],''))
FROMdbo.syscolumnsa
leftjoindbo.systypesbona.xusertype=b.xusertype
innerjoindbo.sysobjectsdona.id=d.idandd.xtype='U'andd.name<>'dtproperties'
leftjoindbo.syscommentseona.cdefault=e.id
leftjoinsys.extended_propertiesgona.id=g.major_idanda.colid=g.minor_id
leftjoinsys.extended_propertiesfond.id=f.major_idandf.minor_id=0
whered.name='你自己的表名稱'