日度归档:2018年10月11日

mssql sqlserver 查询指定表的下索引名称的语句分享


摘要:
使用系统存储过程查询出指定表下的索引的方法分享,如下所示:
实验环境:sql server 2008 R2


SELECT    a.name   as [索引名称]
,c.name as [表名]
,d.name as [索引字段名]
,d.colid as [索引字段位置]
FROM sysindexes a(nolock)
JOIN sysindexkeys b(nolock) ON a.id=b.id AND a.indid=b.indid
JOIN sysobjects c(nolock) ON b.id=c.id
JOIN syscolumns d(nolock) ON b.id=d.id AND b.colid=d.colid
WHERE a.indid NOT IN(0,255)
-- and c.xtype='U' and c.status>0
AND c.name='待查询表名'

mssql sqlserver 系统表 systypes 功能说明


摘要:
sqlserver系统表 systypes用法说明,如下所示:
实验环境:sql server 2008 R2


systypes为系统表:
主要用于存放系统数据类型,包括 系统提供的基础类型和用户自定义数据类型
——systypes返回列说明—–

列名称

列数据类型

列说明
xtype

tinyint

物理存储类型。
status

tinyint

标识为仅供参考。不提供支持。不保证以后的兼容性。
xusertype

smallint

扩展用户类型。 如果数据类型的数字超过 32,767,则溢出或返回 NULL。
length

smallint

数据类型的物理长度
xprec

tinyint

服务器使用的内部精度。 不在查询中使用。
xscale

tinyint

服务器使用的内部小数位数。 不在查询中使用。
tdefault

int

特定存储过程的 ID,此存储过程包含对该数据类型的完整性检查功能。
domain

int

特定存储过程的 ID,此存储过程包含对该数据类型的完整性检查功能。
uid

smallint

所有者类型的架构 ID
reserved

smallint

标识为仅供参考。不提供支持。不保证以后的兼容性。
collationid

int

如果使用的是字符,则 collationid 为当前数据库的排序规则的 ID;否则为 NULL。
usertype

smallint

用户类型 ID。 如果数据类型的数字超过 32,767,则溢出或返回 NULL。
variable

bit

可变长度数据类型。
1 = True
0 = False
allownulls

bit

指示此数据类型的默认为空性。 如果使用 CREATE TABLE 或 ALTER TABLE 指定了为空性,则覆盖此默认值。
type

tinyint

物理存储数据类型
printfmt

varchar(255)

标识为仅供参考。不提供支持。不保证以后的兼容性。
prec

smallint

此数据类型的精度级别
-1 = xml 或大值类型
scale

tinyint

此数据类型根据精度确定的小数位数。
NULL = 数据类型不是数值。
collation

sysname

如果使用的是字符,则 collation 为当前数据库的排序规则;否则为 NULL。

 select * from systypes;

mssql_sqlserver_sys.types

mssql sqlserver sp_autostats 关键字简介说明


摘要:
下文讲述 sp_autostats 关键字的功能及用法说明,如下所示:
实验环境:sql server 2008 R2



sp_autostats 功能及语法说明

sp_autostats 功能:
显示或更改索引或统计信息的自动设置现象。
sp_autostats 语法说明:
sp_autostats [@tblname=] ‘table_name’
[,[@flagc=] ‘stats_flag’]
[,[@indname=] ‘index_name’]
——————-参数说明—————-
[@tblname =] ‘table_name’
待检测的表和视图名称,此处参数类型为nvarchar(776)
[@flagc =] ‘stats_flag’
此处参数输入 ON 或 OFF ,缺省输入时为NULL
[@indname =] ‘index_name’
此处缺省值为NULL
此处输入待启用或禁用的索引名称
——————返回值说明————–
0 代表操作成功
1 代表操作失败

sp_autostats 举例说明

  
 ---显示表"testTableName"下所有索引及统计信息是否开启自动统计
 ----和统计信息的最后更新时间
 EXEC sp_autostats testTableName
 
 ---启用表 testTableName 下所有统计信息自动统计功能
 EXEC sp_autostats testTableName, 'ON'
 
 ---禁用表 testTableName下所有统计信息自动统计功能
 EXEC sp_autostats testTableName, 'OFF'
 

 ---禁用表"testTableName" 下索引 IX_test的自动统计信息
  
EXEC sp_autostats testTableName,'OFF',IX_test 


注意事项:
运行此存储过程的用户,须具有 db_owner 和 db_ddladmin 服务器角色