-- -------SQL SERVER ---------------
-- --- 获取用户表
select id,name from sysobjects where xtype = ' U ' and name <> ' dtproperties ' order by name
-- -- 获取用户存储过程
select id,name from sysobjects where xtype = ' P ' and name <> ' dtproperties ' order by name
-- - 获取用户视图
select id,name from sysobjects where xtype = ' V ' and name <> ' dtproperties ' order by name
declare @TbName nvarchar ( 60 )
go
set @TbName = ' tbname '
-- ---获取用户表具体结构
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
sys.extended_properties G
ON
A.ID = G.major_id AND A.COLID = G.minor_id
LEFT JOIN
sys.extended_properties F
ON
D.ID = F.major_id AND F.minor_id = 0
Where D.Name = @TbName
ORDER BY
A.ID,A.COLORDER