SQL Server 常用内置函数
本文用于收集在运维中经常使用的系统内置(built-in)函数,持续整理中
一,常用的获取元数据的函数
1,查看数据库的ID和Name
db_id(‘DB Name’),db_name('DB ID')
2,查看对象的ID和Name,对象的Schema,对象的定义
OBJECT_ID ( 'schema_name . object_name','object_type' ) OBJECT_NAME ( object_id [, database_id ] ) OBJECT_SCHEMA_NAME ( object_id [, database_id ] ) OBJECT_DEFINITION ( object_id )
3,查看Schema的ID和Name,通过对象ID获取对象的架构名(Schema)
SCHEMA_NAME ( [ schema_id ] ) SCHEMA_ID ( [ schema_name ] ) OBJECT_SCHEMA_NAME ( object_id [, database_id ] )
4,查看Column的Name
COL_NAME(table_id,column_id)
二,常用全局变量
1,SQL Server的Name,ServiceName和版本
@@SERVERNAME,@@SERVICENAME,@@VERSION
查看服务器名字,也可以使用函数 serverproperty('servername'),有时 serverproperty('servername') 和 @@servername 返回的值不同,这可能是修改服务器的名称导致,使用如下脚本修复,并重启service,检查服务器的名称:
--将两者协调一致,再重启 SQL Server 服务 if serverproperty('servername')<>@@servername begin declare @server sysname set @server= @@servername exec sys.sp_dropserver @server = @server set @server = cast(serverproperty('servername') as sysname) exec sys.sp_addserver @server = @server ,@local = 'LOCAL' end use master go select name ,@@servername,serverproperty('servername') from sys.servers where server_id=0 --Local Server ID = 0 go
2,返回当前module的ID,module包括:SP,UDF,Trigger
@@PROCID --获取当前Module Name declare @ObjectName sysname; select @ObjectName=object_name(@@ProcID)
3,返回当前Session的ID,当前的RequestID
@@SPID CURRENT_REQUEST_ID()
4,在当前Session中,返回上一条Query影响的数据行数量
@@ROWCOUNT ROWCOUNT_BIG ( )
5,当前Connection中,返回已开启,但未结束的事务数量,查看当前事务的ID,和事务的状态(1,0,-1)
XACT_STATE() 函数返回事务的状态,1表示有Active Transaction,0表示没有Active Transaction,-1表示有Active Transaction,但是有错误发生导致该事务未被提交。
@@TRANCOUNT CURRENT_TRANSACTION_ID( ) XACT_STATE()
6,查看当前机器(Host)的名字(Machine Name和ID)
HOST_NAME () ,HOST_ID()
三,使用GZIP算法压缩数据和解压缩数据
COMPRESS ( expression )
DECOMPRESS ( expression )
在插入数据时,压缩数据,压缩之后的数据类型是varbinary(max)
INSERT INTO player (name, surname, info ) VALUES (N'Ovidiu', N'Cracium', COMPRESS(N'{"sport":"Tennis","age": 28,"rank":1,"points":15258, turn":17}'));
在查询数据时,解压缩数据,将数据从varbinary(max)强转为原始类型
SELECT _id, name, surname, datemodified, CAST(DECOMPRESS(info) AS NVARCHAR(MAX)) AS info FROM player;
参考文档:
Metadata Functions (Transact-SQL)
作者:悦光阴
本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。