SQL Server中查询数据库及表的信息语句

时间:2023-02-20 15:56:48
/*
-- 本文件主要是汇总了 Microsoft SQL Server 中有关数据库与表的相关信息查询语句。 -- 下面的查询语句中一般给出两种查询方法,
-- A方法访问系统表,适应于SQL 2000/2005/2008/2008 R2,但是在微软的联机帮助中特意说明这些系统表
-- 在后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能。
--
-- B方法访问系统视图,为微软推荐使用方法,对于今后新版本 SQL Server 兼容性比较好。
-- 两种方法存在细微差别,下面的网址给出了系统表与函数以及系统视图与函数之间的映射。
-- http://technet.microsoft.com/zh-cn/library/ms187997.aspx */ --1、查询数据库中有哪些表名
select name, id FROM sysobjects o where o.type = 'U' -- A
select name, [object_id] FROM sys.objects o where o.type = 'U'; -- B
--其中where条件还可按下面改:
A:type = 'K' B:type = 'PK' --主键
type = 'P' -- 存储过程
type = 'S' -- 系统表
type = 'V' -- 视图 --2、查询表的字段名称和数据类型
--旧方法
select 'TableName' as TableName
,c.name as ColumnName
,t.name as DataType
from syscolumns c
join systypes t
on c.xtype = t.xtype and c.id=object_id( N'TableName');
--新方法
select 'TableName' as TableName
, c.name as ColumnName
, t.name as DataType
from sys.COLUMNS c
join sys.types t
on c.system_type_id = t.system_type_id
and c.object_id=object_id( N'TableName');
--information_schema.columns
select column_name
,data_type --系统提供的数据类型。
,IS_NULLABLE --列的为空性。如果列允许 NULL,则该列将返回 YES。否则,返回 NO。
,COLUMN_DEFAULT --列的默认值。没有,返回 NULL。
,CHARACTER_MAXIMUM_LENGTH --二进制数据、字符数据或文本和图像数据的最大长度(字符)。对于 xml 和大值类型数据,为 -1.否则,返回 NULL。
,CHARACTER_OCTET_LENGTH --二进制数据、字符数据或文本和图像数据的最大长度(字节)。对于 xml 和大值类型数据,为 -1.否则,返回 NULL。
,NUMERIC_PRECISION --近似数字数据、精确数字数据、整数数据或货币数据的精度。否则,返回 NULL。
,NUMERIC_PRECISION_RADIX --近似数字数据、精确数字数据、整数数据或货币数据的精度基数。否则,返回 NULL。
,NUMERIC_SCALE --近似数字数据、精确数字数据、整数数据或货币数据的小数位数。否则,返回 NULL。
from information_schema.columns
where table_name = 'TableName'; --3、查询表中的主键
select b.name as tableName, a.name as PK_Name
FROM sysobjects a
join sysobjects b
on a.type = 'K' and b.type = 'U'
and a.parent_obj = b.id
and b.name = 'TableName' select b.name as tableName, a.name as PK_Name
FROM sys.objects a
join sys.objects b
on a.type = 'PK' and b.type = 'U'
and a.parent_object_id = b.object_id
and b.name = 'TableName' --4、查询表中的索引
EXEC sp_helpindex N'tableName'

SQL Server中查询数据库及表的信息语句的更多相关文章

  1. sql server 中查询数据库下有多少张表以及同义词等信息

    --查询数据库有多少张表SELECT count(0) from sysobjects where xtype = 'u' 复制代码 解释:sysobjects系统对象表. 保存当前数据库的对象.如约 ...

  2. SQL Server 2008 查询所有用户表

    SQL Server 2008 查询所有用户表的T-SQL语句是: SELECT * FROM sysobjects WHERE [xtype] = 'U' 或者是: SELECT * FROM sy ...

  3. sql Server中临时表与数据表的区别

    sql server 中临时表与数据表的区别 1.如何判断临时表和数据表已生成 --如何判断临时表是否已创建--- if exists(select * from tempdb..sysobjects ...

  4. Sql Server中查询今天、昨天、本周、上周、本月、上月数据

    Sql Server中查询今天.昨天.本周.上周.本月.上月数据 在做Sql Server开发的时候有时需要获取表中今天.昨天.本周.上周.本月.上月等数据,这时候就需要使用DATEDIFF()函数及 ...

  5. Sql Server中不常用的表运算符之UNPIVOT

    在Sql Server中不常用的表运算符之PIVOT中,介绍了PIVOT表运算符,现在来说说与之相对应的另一个表运算符UNPIVOT. 从名字可以看出,这个运算符的作用与PIVOT刚好相反,是将一行的 ...

  6. Sql Server中不常用的表运算符之APPLY(2)

    在Sql Server中不常用的表运算符之APPLY(1)中提到,SQL2005中新支持的APPLY的特性:1.可以直接将表表达式(表值函数或者子查询)作为APPLY语句的右表连接左表.2.由于使用A ...

  7. SQL Server中查询用户的对象权限和角色的方法

    --SQL Server中查询用户的对象权限和角色的方法 -- 查询用户的object权限 exec sp_helprotect NULL, 'sa' -- 查询用户拥有的role exec sp_h ...

  8. SQL Server中通用数据库角色权限处理

    SQL Server中通用数据库角色权限处理   最近和同事在做数据库权限清理的事情,主要是删除一些账号:取消一些账号的较大的权限等,例如,有一些有db_owner权限,我们取消账号的数据库角色db_ ...

  9. 转:Sql Server中清空所有数据表中的记录

    如果要删除数据表中所有数据只要遍历一下数据库再删除就可以了,清除所有数据我们可以使用搜索出所有表名,构造为一条SQL语句进行清除了,这里我一一给各位同学介绍.   使用sql删除数据库中所有表是不难的 ...

随机推荐

  1. SQL2008完全卸载详解(图解)

    一.    SQL2008卸载. 1.从控制面板卸载 1)点击计算机右下角“开始”,点击“控制面板”

  2. UVA 540 stl

    Queues and Priority Queues are data structures which are known to most computer scientists. The Team ...

  3. visual 2008中error PRJ0003 : 生成 cmd.exe 时出错

    visual 2008中error PRJ0003 : 生成 cmd.exe 时出错”,   和vs2008 sp1没关系 解决方案:工具—>选项—>项目和解决方案—>VC++目录, ...

  4. iOS-UITouch,UIEvent使用介绍

    UITouch 当用户用一根手指触摸屏幕时,会创建一个与手指相关联的UITouch对象 一根手指对应一个UITouch对象 UITouch的作用 保存着跟手指相关的信息,比如触摸的位置.时间.阶段 当 ...

  5. PHP strtotime在linux服务器时间延迟8小时问题

    今天客户反映有个功能投票模块第一天投了后,第二天就不能投了,理论上是第二天凌晨就可以再答题的,发现本地是正常的,linux服务器异常, 仔细查找原因发现是strtotime函数获取的值和本地获取的值不 ...

  6. 两个无序数组分别叫A和B,长度分别是m和n,求中位数,要求时间复杂度O(m+n),空间复杂度O(1) 。

    #include <iostream> using namespace std; /*函数作用:取待排序序列中low.mid.high三个位置上数据,选取他们中间的那个数据作为枢轴*/ i ...

  7. Javascript模块化简史

    Script标签和闭包 RequireJS, AngularJS以及依赖注入 Node.js以及CommonJS的出现 ES6, import, Babel和Webpack https://ponyf ...

  8. 微信 小程序组件 加入购物车全套 one js

    // pages/shop/shop.js Page({ /** * 页面的初始数据 */ data: { carts: [ { teaname: '冠军乌龙茶-150g', image: '../. ...

  9. ldd pvs dis on solaris 10

    #include <QtGui/QApplication> #include <QtGui/QDialog> int main(int argc, char *argv[]) ...

  10. (转)NGUI系列教程七(序列帧动画UITexture 和 UIsprit)

    NGUI系列教程七(序列帧动画)   今天我给大家讲一下如何使用NGUI做序列帧动画.本节主要包括两方面内容,分别是使用UIspirit和使用UITexture 做序列帧动画.废话不说了,下面开始.还 ...