今天整理資料時看到有這樣一個查詢數據庫中的表和字段信息的語句,很強! 就是忘了當初誰寫的了,印像中該是鄒建所創。也貼出來以后備用吧。
1
SELECT
2
表名 = CASE a.colorder WHEN 1 THEN c.name ELSE '' END,
3
序 = a.colorder,
4
字段名 = a.name,
5
標識 = CASE COLUMNPROPERTY(a.id,a.name,'IsIdentity') WHEN 1 THEN '√' ELSE '' END,
6
主鍵 = CASE
7
WHEN EXISTS (
8
SELECT *
9
FROM sysobjects
10
WHERE xtype='PK' AND name IN (
11
SELECT name
12
FROM sysindexes
13
WHERE id=a.id AND indid IN (
14
SELECT indid
15
FROM sysindexkeys
16
WHERE id=a.id AND colid IN (
17
SELECT colid
18
FROM syscolumns
19
WHERE id=a.id AND name=a.name
20
)
21
)
22
)
23
)
24
THEN '√'
25
ELSE ''
26
END,
27
類型 = b.name,
28
字節數 = a.length,
29
長度 = COLUMNPROPERTY(a.id,a.name,'Precision'),
30
小數 = CASE ISNULL(COLUMNPROPERTY(a.id,a.name,'Scale'),0)
31
WHEN 0 THEN ''
32
ELSE CAST(COLUMNPROPERTY(a.id,a.name,'Scale') AS VARCHAR)
33
END,
34
允許空 = CASE a.isnullable WHEN 1 THEN '√' ELSE '' END,
35
默認值 = ISNULL(d.[text],''),
36
說明 = ISNULL(e.[value],'')
37
FROM syscolumns a
38
LEFT JOIN systypes b ON a.xtype=b.xusertype
39
INNER JOIN sysobjects c ON a.id=c.id AND c.xtype='U' AND c.name<>'dtproperties'
40
LEFT JOIN syscomments d ON a.cdefault=d.id
41
LEFT JOIN sysproperties e ON a.id=e.id AND a.colid=e.smallid
42
ORDER BY c.name, a.colorder
我修改一下,變個精簡版本的:
1
2select a.name, b.xtype,b.name
3from syscolumns a
4inner JOIN systypes b
5ON a.xtype=b.xusertype
6inner join sysobjects c ON
7a.id=c.id AND c.xtype='U' AND c.name<>'dtproperties' where c.name = 表名
http://ring1981.cnblogs.com/archive/2006/06/22/432857.html
新聞熱點
疑難解答