SQL Server中查询数据库及表的信息语句
/*
-- 本文件主要是汇总了 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中查询数据库及表的信息语句的更多相关文章
- sql server 中查询数据库下有多少张表以及同义词等信息
--查询数据库有多少张表SELECT count(0) from sysobjects where xtype = 'u' 复制代码 解释:sysobjects系统对象表. 保存当前数据库的对象.如约 ...
- SQL Server 2008 查询所有用户表
SQL Server 2008 查询所有用户表的T-SQL语句是: SELECT * FROM sysobjects WHERE [xtype] = 'U' 或者是: SELECT * FROM sy ...
- sql Server中临时表与数据表的区别
sql server 中临时表与数据表的区别 1.如何判断临时表和数据表已生成 --如何判断临时表是否已创建--- if exists(select * from tempdb..sysobjects ...
- Sql Server中查询今天、昨天、本周、上周、本月、上月数据
Sql Server中查询今天.昨天.本周.上周.本月.上月数据 在做Sql Server开发的时候有时需要获取表中今天.昨天.本周.上周.本月.上月等数据,这时候就需要使用DATEDIFF()函数及 ...
- Sql Server中不常用的表运算符之UNPIVOT
在Sql Server中不常用的表运算符之PIVOT中,介绍了PIVOT表运算符,现在来说说与之相对应的另一个表运算符UNPIVOT. 从名字可以看出,这个运算符的作用与PIVOT刚好相反,是将一行的 ...
- Sql Server中不常用的表运算符之APPLY(2)
在Sql Server中不常用的表运算符之APPLY(1)中提到,SQL2005中新支持的APPLY的特性:1.可以直接将表表达式(表值函数或者子查询)作为APPLY语句的右表连接左表.2.由于使用A ...
- SQL Server中查询用户的对象权限和角色的方法
--SQL Server中查询用户的对象权限和角色的方法 -- 查询用户的object权限 exec sp_helprotect NULL, 'sa' -- 查询用户拥有的role exec sp_h ...
- SQL Server中通用数据库角色权限处理
SQL Server中通用数据库角色权限处理 最近和同事在做数据库权限清理的事情,主要是删除一些账号:取消一些账号的较大的权限等,例如,有一些有db_owner权限,我们取消账号的数据库角色db_ ...
- 转:Sql Server中清空所有数据表中的记录
如果要删除数据表中所有数据只要遍历一下数据库再删除就可以了,清除所有数据我们可以使用搜索出所有表名,构造为一条SQL语句进行清除了,这里我一一给各位同学介绍. 使用sql删除数据库中所有表是不难的 ...
随机推荐
- hdu4059 The Boss on Mars(差分+容斥原理)
题意: 求小于n (1 ≤ n ≤ 10^8)的数中,与n互质的数的四次方和. 知识点: 差分: 一阶差分: 设 则 为一阶差分. 二阶差分: n阶差分: 且可推出 性质: 1. ...
- 20145222《信息安全系统设计基础》Linux常用命令汇总
学习Linux时常用命令汇总 通过Ctrl+f键可在该网页搜索到你想要的命令. Linux中命令格式为:command [options] [arguments] //中括号代表是可选的,即有些命令不 ...
- ServerSocket的介绍
导语 仅仅只有Socket类是不足以编写服务器的.要创建一个Socket,你需要知道希望连接哪个Internet主机.编写服务器程序时,无法预先了解哪个主机会联系你,即使确实知道,你也不清楚那个主机希 ...
- 用vue.js学习es6(五):set和map的使用
一:Set用法: ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. (1).打印:console.log var data = new Set([1,2,3]); ...
- Linux 安装MySQL
安装配置 [root@iZ28gvqe4biZ ~]# rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.r ...
- mysql 基本操作
创建数据库 create database studentdb charset utf8; #创建数据库 create database studentdb charset utf8; #查看数据库的 ...
- js浮点乘除法运算不精确bug
//除法函数,用来得到精确的除法结果 //说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显.这个函数返回较为 精确的除法结果. //调用:accDiv(arg1,arg2 ...
- 【USACO 3.2】Magic Squares
题意 4*2个格子分别为 1234 8765 的魔板有3种操作,A:上下两排互换,B:最后一列放到第一列前面,C:中间四个顺时针旋转1格. 现在给出目标状态,找出最少步数可从原始状态到达目标状态,且输 ...
- Apache service named reported the following error(OS 10055)由于系统缓冲区空间不足或队列已满解决办法?
apache启动失败报错: The Apache service named reported the following error:>>> AH00451: no listeni ...
- JDBC判断数据库是否插入成功
package com.xujianyou; import java.sql.*; public class TestConnect { public static void main(String ...