怎么显示读取SQLSERVER中指定用户所拥有的表的名称,请各位达人请教!!!!
我要做通用查询系统,要动态读取用户在SQLSERVER中所建立的各个表的名称!!!怎么操作???

解决方案 »

  1.   

    给你参考一很实用的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.xusertypeinner join sysobjects d on a.id=d.id  and  d.xtype='U' and  d.name<>'dtproperties'left join syscomments eon a.cdefault=e.idleft join sysproperties gon a.id=g.id AND a.colid = g.smallid  order by object_name(a.id),a.colorder
      

  2.   

    从master库中的sysusers系统表中找到该用户的uid,然后在要操作数据库中的sysobjects系统表中找到该uid建立的表名称