查找SQL数据表或视图中的字段属性信息

一、只支持表,非常牛逼的

SELECT a.name,(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 ‘1‘ else ‘0‘ end) isprimary,
b.name [type],COLUMNPROPERTY(a.id,a.name,‘PRECISION‘) as [length],isnull(g.value,‘‘) as [description]
FROM syscolumns a
left join systypes b on a.xtype=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
where  d.name =‘表明‘
order by a.id,a.colorder

二,一般牛逼,支持表

select object_name(id) as 表名 ,c.name as 字段名 ,t.name 数据类型 ,c.prec as 长度
from syscolumns c inner join systypes t on c.xusertype=t.xusertype
where objectproperty(c.id,‘IsUserTable‘)=1 and c.id=object_id(‘表明‘)

三、一般牛逼,支持视图

select object_name(id) as 表名 ,c.name as 字段名 ,t.name 数据类型 ,c.prec as 长度
from syscolumns c inner join systypes t on c.xusertype=t.xusertype
where objectproperty(c.id,‘IsView‘)=1 and c.id=object_id(‘V_ALLSay‘) 

求大神非常牛逼的,既支持表也支持视图的sql

时间: 2024-10-10 11:48:47

查找SQL数据表或视图中的字段属性信息的相关文章

sql增加字段记录丢失 sql数据表丢列 软件增加字段后之前记录丢失

客户名称 某大型企业 数据类型 SQL2005数据库 数据大小 10g 故障现象 数据库其中一个表 被客户把text字段类型改成了varchar类型,导致表数据部分丢失.后客户又改成text类型. 处理结果 客户把文件发给我们后,首先分析造成此次数据丢失的原因,text类型的字段存储的文本内容可以跨页,改成varchar类型就会导致超过长度的值都无法保存在新的varchar类型字段,这样一来就会导致很多超过此长度的数据丢失/.. 根据日志分析 客户先后把这个text字段改成了 varchar(2

Oracle生成查询包括对应于所有数据表记录语句中指定的字段名

应用:已知的字段名,表中的所有数据的查询数据库中包含的所有数据表的字段名 操作方法:指定字段名,用户数据库表,它可以执行以下查询 --Oracle生成查询包括对应于所有数据表记录语句中指定的字段名 declare mycolumnname VARCHAR(255):='userid';--定义要查询的字段名变量,执行前改动成您要查询的字段名myownername VARCHAR(255):='system';--定义要查询的数据库username变量,执行前改动成您要查询的数据库username

JS 向web sql数据表插入数据

var strSQL = "insert into tableName values (?,?,?)"; var info=[1,1,1]; //向web sql数据表插入数据. function insertInfo(strSQL,info){ //连接数据库(http://www.cnblogs.com/nb08611033/p/8227560.html) db = openDB(); if (db) { db.transaction(function(tr) { tr.execu

SQL两表关联查询&批量修改字段值

SQL关联查询&修改字段,正确范例如下: --批量修改报告单位名称&更新时间 --tt和tp两表关联查询,将符合条件的tt表中的principal字段更新到tp表的ruperson字段 merge into nhis34.t_publicplaces tp using standard.t_organization tt on (tt.orgcode = tp.r_orgcode and tp.create_time > '2015-05-07 00:00:00') when mat

SQL SERVER中某个字段属性为varchar,我想把这个字段改成int型

SQL SERVER中某个字段属性为varchar,我想把这个字段改成int型? 这个就有点恼了,作为新手面对这些问题真有点难,这个也是我在百度上查到的,作为基础的整理吧,以后遇到方便查看. 用SQL语句:alter table [aa] alter column bb int eg: 这个是我的例子. 执行成功可以刷新一下数据库(如还是不可以,那就断开现有连接,再次连接就好.)

SQL FIND_IN_SET() 判断某一个数是否存在于数据表某个以逗号分隔开字段数据中

数据表中的字段存储的是以逗号分隔开的字符串, 例如 (1,2,6,8) 以前不知道这个用法, 碰到比如 8 是否包含在改字符串里面只能一个个取出来, 然后解析成数组,再判断是否在该数组中,效率极低: FIND_IN_SET(str,strList) str 要查询的字符串 strList 字段名,参数以“,”分隔,如(1,2,6,8) 现在有了这个, 直接 where FIND_IN_SET(8, 数据表字段名), 就可以. 原文地址:https://www.cnblogs.com/pyspan

SQLite学习手册(数据表和视图)

如何列出SQLite数据库中的所有表 SQLite数据库中的信息存在于一个内置表sqlite_master中,在查询器中可以用 select * from sqlite_master 来查看,如果只要列出所有表名的话,则只要一个语句: SELECT name FROM sqlite_master WHERE type='table' order by name,因为表的列type固定为'table' 一.创建数据表: 该命令的语法规则和使用方式与大多数关系型数据库基本相同,因此我们还是以示例的方

数据表和视图

一.创建数据表: 该命令的语法规则和使用方式与大多数关系型数据库基本相同,因此我们还是以示例的方式来演示SQLite中创建表的各种规则.但是对于一些SQLite特有的规则,我们会给予额外的说明.注:以下所有示例均是在sqlite自带命令行工具中完成的.    1). 最简单的数据表:    sqlite> CREATE TABLE testtable (first_col integer);    这里需要说明的是,对于自定义数据表表名,如testtable,不能以sqlite_开头,因为以该前

SQLite数据表和视图

一.创建数据表: 该命令的语法规则和使用方式与大多数关系型数据库基本相同,因此我们还是以示例的方式来演示SQLite中创建表的各种规则.但是对于一些SQLite特有的规则,我们会给予额外的说明.注:以下所有示例均是在sqlite自带命令行工具中完成的. 1). 最简单的数据表: sqlite> CREATE TABLE testtable (first_col integer); 这里需要说明的是,对于自定义数据表表名,如testtable,不能以sqlite_开头,因为以该前缀定义的表名都用于