查询查询SQL Server中的预定义查询

1. 概述

在SQL Server中,预定义查询是指在创建查询过程中,系统自动定义的一些查询。

这些查询分为两类:

系统存储过程(system stored procedures)

系统函数(system functions)

2. 系统存储过程

2.1 sp_who

sp_who 存储过程返回有关当前 SQL Server 中活动用户(系统或用户进程)和有关每个进程使用的资源的信息。此存储过程提供了对执行查询的用户、进程和锁定的一个简要概述。

该存储过程返回的信息有:

SPID - 进程ID

Status - 当前状态

Loginame - 登录名

HostName - 主机名

BlkBy - 正在阻止此进程的进程ID(如果有)

DBName - 正在使用的数据库名称

Command - 执行的命令

CPUTime - CPU时间(毫秒)

DiskIO - 磁盘IO

LastBatch - 上一个批处理的时间

ProgramName - 正在使用的程序名称

以下是一个使用sp_who的例子:

sp_who

该代码会返回当前SQL Server中活动的用户和进程的信息。

2.2 sp_help

sp_help 存储过程提供有关对象的属性、列和其他信息。它可以用于从 SQL Server 元数据中检索对象定义的各个方面信息(如列、约束、索引、存储过程、视图等)。

以下是一个使用sp_help获取表信息的例子:

sp_help 'sales.customers'

该代码会返回名为sales.customers表的所有相关信息。

2.3 sp_executesql

sp_executesql 存储过程可以用于将 Transact-SQL 语句动态转换为执行时执行的 SQL 语句批处理。此存储过程的某些使用方案包括:

动态的查询方案

基于输入的存储过程组装参数的动态SQL

高级动态存储过程

以下是一个使用sp_executesql 的例子:

DECLARE @sql NVARCHAR(MAX)

SET @sql = 'SELECT * FROM Sales.Customers'

EXEC sp_executesql @sql

该代码会动态地生成一个SQL查询语句,返回Sales.Customers表中的所有数据。

3. 系统函数

3.1 COUNT()

COUNT() 函数用于返回指定表或查询中行的数目。如果要返回特定条件下行的数目,可以在 COUNT 中指定条件。

以下是一个使用COUNT()的例子:

SELECT COUNT(*) FROM Sales.Customers

该代码返回Sales.Customers表中的行数。

3.2 AVG()

AVG() 函数用于返回指定表或查询中的数值列的平均值。

以下是一个使用AVG()的例子:

SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader;

该代码返回Sales.SalesOrderHeader表中TotalDue列的平均值。

3.3 SUM()

SUM() 函数用于返回指定表或查询中数值列的和。

以下是一个使用SUM()的例子:

SELECT SUM(TotalDue) FROM Sales.SalesOrderHeader;

该代码返回Sales.SalesOrderHeader表中TotalDue列的总和。

4. 小结

预定义查询是SQL Server中自带的一些查询,可以用于帮助我们更快捷、方便地进行查询操作。其中系统存储过程用于返回有关 SQL Server 中活动用户、进程和其他资源的信息;系统函数用于返回特定条件下表或查询中行的数目、数值列的平均值以及数值列的总和。这些查询的使用可以大大提高查询的效率。

数据库标签