天天看點

SQL語句:擷取使用者表名、得到表中的所有列資訊、得到表中主鍵所包含的列名

1、擷取使用者表名:

SELECT name FROM sysobjects WHERE type = 'U' AND sysstat = '83'

注意:一般情況隻需要type = 'U',但有時候會有系統表混在其中(不知道什麼原因),加上後面一句後就能删除這些系統表了

2、得到表中的所有列資訊(包含資料類型名):

SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length FROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype AND "syscolumns.id = object_id('tableName')

注意點:

(1)這裡為了重點突出某些重要内容,選取了其中幾項資訊輸出。

(2)syscolumns表中隻含有資料類型編号,要擷取完整的名字需要從systypes表中找,一般使用者使用的資料類型用xusertype對應比較好,不會出現一對多的情況。

(3)syscolumns.length得到的是實體記憶體的長度,是以nvarchar和varchar等類型在資料庫中的顯示是這個的一半。

繼續閱讀