sysobjects是系統(tǒng)對象表,syscolumns是系統(tǒng)字段信息表,systypes是系統(tǒng)類型表。通過字段的ID和sysproperties(系統(tǒng)注釋屬性表)關(guān)聯(lián),即可讀出注釋信息。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供蒙山網(wǎng)站建設(shè)、蒙山做網(wǎng)站、蒙山網(wǎng)站設(shè)計(jì)、蒙山網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、蒙山企業(yè)網(wǎng)站模板建站服務(wù),10年蒙山做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
sql
server,如何給表和字段添加備注,并更新備注,以及查詢備注
sqlserver沒有這樣的功能,但你可以用powerdesigner等工具去建表,這個(gè)可以實(shí)現(xiàn)你要的,然后你在導(dǎo)到sqlserver就ok了
肯定做不到合并單元格,數(shù)據(jù)庫不是excel
不過可以找1個(gè)為字符型的字段,比如你查詢一個(gè)東西sql語句這樣
select id,name,pirce from 表名
結(jié)果是
1?? 張三? 100
2?? 李四? 200
你要顯示成
1?? 張三? 100
2?? 李四? 200
12月獎(jiǎng)金
select?id,name,pirce?from?表名
union?all
select?'','12月獎(jiǎng)金',''
這是sqlserver的寫法
用圖形化界面,在設(shè)置ID自動(dòng)增長的那里,有個(gè)寫字段備注信息的,你好好看看。
sysproperties表里
表注釋對應(yīng)的smallid為0的記錄,字段注釋對應(yīng)的是smallid大于0的記錄,id是對象id與sysobjects表中的id相對應(yīng),可以join一下取得表名
結(jié)果代碼是:?建表后,設(shè)置表/字段的注釋信息。
下面是 讀取表/字段 的說明備注 的 SQL 語句。
獲取數(shù)據(jù)庫表清單:
select?top?1000?
ROW_NUMBER()?OVER?(ORDER?BY?a.object_id)?AS?No,??
a.name?AS?表名,?
isnull(g.[value],'-')?AS?說明
from?
sys.tables?a?left?join?sys.extended_properties?g?
on?(a.object_id?=?g.major_id?AND?g.minor_id?=?0)
No?表名?說明
1?test_table?測試表
2?test_main?-
獲取數(shù)據(jù)庫表的字段清單 [這里是查看 test_table 表的字段]
SELECT
a.column_id?AS?No,
a.name?AS?列名,
isnull(g.[value],'-')?AS?說明
FROM
sys.columns?a?left?join?sys.extended_properties?g
on?(a.object_id?=?g.major_id?AND?g.minor_id?=?a.column_id)
WHERE
object_id?=
(SELECT?object_id?FROM?sys.tables?WHERE?name?=?'test_table')
No?列名?說明
1?Test_ID?主鍵(自增長)
2?Test_Key?種類
3?Test_Value?數(shù)值
4?Test_Type?內(nèi)部類型
5?Test_BelongTo?從屬關(guān)系
6?Test_Grade?等級
7?Test_Remark?備注
8?Test_Visible?是否可見
-----
更加詳細(xì)一點(diǎn)的信息
SELECT
col.name?AS?列名,
typ.name?as?數(shù)據(jù)類型,
col.max_length?AS?占用字節(jié)數(shù),
col.precision?AS?數(shù)字長度,
col.scale?AS?小數(shù)位數(shù),
col.is_nullable??AS?是否允許非空,
col.is_identity??AS?是否自增,
case?when?exists?
(?SELECT?1?
FROM?
sys.indexes?idx?
join?sys.index_columns?idxCol?
on?(idx.object_id?=?idxCol.object_id)
WHERE
idx.object_id?=?col.object_id
AND?idxCol.index_column_id?=?col.column_id?
AND?idx.is_primary_key?=?1
)?THEN?1?ELSE?0?END??AS?是否是主鍵
FROM
sys.columns?col?left?join?sys.types?typ?on?(col.system_type_id?=?typ.system_type_id)
WHERE
col.object_id?=
(SELECT?object_id?FROM?sys.tables?WHERE?name?=?'test_table')
SQL Server 2005 的 Microsoft SQL Server Management Studio Express
沒有 帶列名一起復(fù)制。 湊合著看看吧,就不手動(dòng)寫列名了。
Test_ID?? ?int?? ?4?? ?10?? ?0?? ?0?? ?1?? ?1?? ?主鍵(自增長)
Test_Key?? ?varchar?? ?10?? ?0?? ?0?? ?0?? ?0?? ?0?? ?種類
Test_Value?? ?varchar?? ?20?? ?0?? ?0?? ?0?? ?0?? ?0?? ?數(shù)值
Test_Type?? ?int?? ?4?? ?10?? ?0?? ?0?? ?0?? ?0?? ?內(nèi)部類型
Test_BelongTo?? ?int?? ?4?? ?10?? ?0?? ?1?? ?0?? ?0?? ?從屬關(guān)系
Test_Grade?? ?int?? ?4?? ?10?? ?0?? ?1?? ?0?? ?0?? ?等級
Test_Remark?? ?varchar?? ?50?? ?0?? ?0?? ?1?? ?0?? ?0?? ?備注
Test_Visible?? ?bit?? ?1?? ?1?? ?0?? ?1?? ?0?? ?0?? ?是否可見