SQL SERVER 查看数据库表的字段类型,是否允许为NULL,默认值,主键等
- declare @table_name varchar(100)-- 表名
- set @table_name='bqcform101'
- --============表结构
- select 类别,表名or字段名,描述,字段类型,是否自增,允许为NULL,默认值 from
- (
- SELECT '表名' 类别,-1 column_id,tbs.name 表名or字段名,ds.value 描述,'' 字段类型,'' 是否自增,'' 允许为NULL,'' 默认值,1 rn
- FROM sys.extended_properties ds
- LEFT JOIN sysobjects tbs ON ds.major_id=tbs.id
- WHERE ds.minor_id=0 and tbs.name=@table_name
- union
- SELECT
- @table_name 类别
- ,c.column_id
- ,C.name 表名or字段名
- ,s.value 描述
- ,字段类型 = T.name + CASE T.user_type_id WHEN 41 THEN '('+CAST(C.scale AS VARCHAR) +')' -- time
- WHEN 42 THEN '('+CAST(C.scale AS VARCHAR) +')' -- datetime2
- WHEN 43 THEN '('+CAST(C.scale AS VARCHAR) +')' -- datetimeoffset
- WHEN 106 THEN '('+CAST(C.precision AS VARCHAR)+','+ CAST(C.scale AS VARCHAR) +')' -- decimal
- WHEN 108 THEN '('+CAST(C.precision AS VARCHAR)+','+ CAST(C.scale AS VARCHAR) +')' -- numeric
- WHEN 165 THEN '('+ISNULL(CAST(NULLIF(C.max_length,-1) AS VARCHAR),'MAX') +')' -- varbinary
- WHEN 167 THEN '('+ISNULL(CAST(NULLIF(C.max_length,-1) AS VARCHAR),'MAX') +')' -- varchar
- WHEN 173 THEN '('+ISNULL(CAST(NULLIF(C.max_length,-1) AS VARCHAR),'MAX') +')' -- binary
- WHEN 175 THEN '('+ISNULL(CAST(NULLIF(C.max_length,-1) AS VARCHAR),'MAX') +')' -- char
- WHEN 231 THEN '('+ISNULL(CAST(NULLIF(C.max_length,-1)/2 AS VARCHAR),'MAX') +')' -- nvarchar(该字段校检根据实际情况)
- WHEN 239 THEN '('+ISNULL(CAST(NULLIF(C.max_length,-1) AS VARCHAR),'MAX') +')' -- nchar
- ELSE ''
- END
- ,case when C.is_identity=1 then '是' else '' end 是否自增
- --cast(C.is_identity as varchar(10)) 是否自增
- ,case when C.is_nullable=1 then '是'else '' end 允许为NULL
- ,默认值 = ISNULL(STUFF(LEFT(D.definition,LEN(D.definition)-1),1,1,''),'')
- ,3 rn
- FROM sys.columns C
- INNER JOIN sys.types T ON C.user_type_id = T.user_type_id
- LEFT JOIN sys.default_constraints D ON D.[object_id] =C.default_object_id AND D.parent_object_id = C.[object_id] AND D.parent_column_id = C.column_id
- left join (select major_id,minor_id,value from sys.extended_properties) s on s.major_id = c.object_id and s.minor_id = c.column_id
- WHERE C.[object_id] = OBJECT_ID(@table_name)
- ) s
- order by column_id,rn
- --============主键
- select Primary_COLUMN_NAME = convert(sysname,c.name)
- from
- sysindexes i, syscolumns c, sysobjects o
- where o.id = object_id(@table_name)
- and o.id = c.id
- and o.id = i.id
- and (i.status & 0x800) = 0x800
- and (c.name = index_col (@table_name, i.indid, 1) or
- c.name = index_col (@table_name, i.indid, 2) or
- c.name = index_col (@table_name, i.indid, 3) or
- c.name = index_col (@table_name, i.indid, 4) or
- c.name = index_col (@table_name, i.indid, 5) or
- c.name = index_col (@table_name, i.indid, 6) or
- c.name = index_col (@table_name, i.indid, 7) or
- c.name = index_col (@table_name, i.indid, 8) or
- c.name = index_col (@table_name, i.indid, 9) or
- c.name = index_col (@table_name, i.indid, 10) or
- c.name = index_col (@table_name, i.indid, 11) or
- c.name = index_col (@table_name, i.indid, 12) or
- c.name = index_col (@table_name, i.indid, 13) or
- c.name = index_col (@table_name, i.indid, 14) or
- c.name = index_col (@table_name, i.indid, 15) or
- c.name = index_col (@table_name, i.indid, 16)
- )
SQL SERVER 查看数据库表的字段类型,是否允许为NULL,默认值,主键等的更多相关文章
- SQL Server进阶(二)字段类型
概述 系统数据类型详情 SqlDbType namespace System.Data { // // 摘要: // 指定要用于 System.Data.SqlClient.SqlParameter ...
- sql server 查看锁表SQL【转】
1.select * from sys.dm_tran_locks或sp_LOCK 查看request_node 字段中为'X'(排他锁)或'IX'(意向排他锁)2.用sp_who2 + pid(进程 ...
- [转]基于SQL脚本将数据库表及字段提取为C#中的类
开发时,勉不了需要使用SQL直接与数据库交互,这时对于数据库中的表名及字段名会使用的比较多.如果每使用一次都复制一个,实在蛋疼.所以就考虑将其做成const常量.但是数据库中的表和字段相当多,一个一个 ...
- Sql Server 导出数据库表结构的SQL查询语句
--导出数据库所有表 SELECT 表名 Then D.name Else '' End, 表说明 Then isnull(F.value,'') Else '' End, 字段序号 = A.colo ...
- sql server查看创建表的代码,表定义
1.查看建表语句在“对象资源管理器”中找到要导出的表,选中该表并单击右键,“编写表脚本为(S)”/“CREATE到(C)”/“新查询编辑器窗口”即可查看该表的建表语句.2.导出建表语句在“对象资源管理 ...
- sql server 2008获取表的字段注释
SELECT 表名 then d.name else '' end, 表说明 then isnull(f.value,'') else '' end, 字段序号=a.colorder, 字段名=a.n ...
- SQL Server 查看数据表占用空间大小的SQL语句
) ) if object_id('tempdb..#space') is not null drop table #space ),rows ),data ),index_size ),unused ...
- SQL SERVER 查看数据库安装时间
--通过name为NT AUTHORITY\SYSTEM的登录账号的create_date,就知道SQL Server的安装日期了. SELECT * FROM SYS.SERVER_PRINCIPA ...
- SQL SERVER 查看数据库信息
a.使用sys.database_files查看有关数据库文件的信息 b.使用sys.filegroups查看有关数据库组的信息. c.使用sys.master_files 查看数据库文件的基本信息和 ...
随机推荐
- No.018:4Sum
问题: Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = ...
- <记录学习>(前三天)京东页面各种注意点
培训学校第1到3天先学习HTML现在流行的是HTML5,目前学习的是HTML5规范.(给有基础一定的人学习)前三天学习的是京东页面的编写,和以前写的不同,页面看上去和自己写的一样,但老师讲的还是有很多 ...
- 设置MySQL允许外网访问
1:设置mysql的配置文件 /etc/mysql/my.cnf 找到 bind-address =127.0.0.1 将其注释掉://作用是使得不再只允许本地访问: 重启 ...
- 更加简洁易用——wangEditor富文本编辑器新版本发布
1. 前言 wangEditor富文本编辑器(www.wangEditor.com)从去年11月份发布,至今已经有将近10各月了.它就像一个襁褓中的小婴儿,在我的努力以及众多使用者的支持下不断摸索.成 ...
- 使用 Google Analytics 跟踪 JavaScript 错误
Google Analytics(谷歌分析)不仅仅是一个流量统计工具,你还可以用它来测量广告活动的有效性,跟踪用户多远到所需的页面流(从点击广告到购物车到结账页面)获取,并基于用户的信息设置浏览器和语 ...
- 【web前端面试题整理06】成都第一弹,邂逅聚美优品
前言 上周四回了成都,休息了一下下,工作问题还是需要解决的,于是今天去面试了一下,现在面试回来了,我感觉还是可以整理一下心得. 这个面试题整理系列是为了以后前端方面的兄弟面试时候可以得到一点点帮助,因 ...
- document.querySelector和querySelectorAll方法
querySelector和querySelectorAll是W3C提供的新的查询接口,其主要特点如下: 1.querySelector只返回匹配的第一个元素,如果没有匹配项,返回null. 2.q ...
- iOS开发--Swift 如何完成工程中Swift和OC的混编桥接(Cocoapods同样适用)
由于SDK现在大部分都是OC版本, 所以假如你是一名主要以Swift语言进行开发的开发者, 就要面临如何让OC和Swift兼容在一个工程中, 如果你没有进行过这样的操作, 会感觉异常的茫然, 不用担心 ...
- Protocol and Delegate协议和代理
1.什么是协议? OC协议仿照Java的接口.协议和接口,都是不同类的对象之间一种通信的机制.2.协议的基础语法 单纯的语言描述协议的语法,很难让人理解,主要因为在OC中协议是类对象的通信机制,他 ...
- c中的进制与内存分析
一. 进制 1. 什么是进制 l 是一种计数的方式,数值的表示形式 数一下方块的个数 汉字:十一 十进制:11 二进制:1011 八进制:13 l 多种进制:十进制.二进制.八进制.十六进制. ...