日度归档:2019年10月14日

mssql sqlserver系统对象”MSdatatype_mappings”简介说明


摘要:
下文讲述sqlserver系统对象中”MSdatatype_mappings”的简介说明,如下所示:
实验环境:sqlserver 2012


MSdatatype_mappings 系统对象的功能说明

MSdatatype_mappings系统对象的功能:
返回sqlserver数据库中“系统自带的数据类型”映射为其它DBMS中数据类型的关系说明。

注意事项:
此映射关系存储在数据库引擎的msdb数据库中。

  select * from  MSdatatype_mappings 

MSdatatype_mappings 对象返回值说明

列名

列数据类型

备注说明

dbms_name

nvarchar(128)

DBMS名称,常见的值
MSSQLSERVER、ORACLE、DB2、SYBASE
sql_type

nvarchar(128)

SQL Server中数据类型
dest_type

nvarchar(128)

目标数据库中SQL Server数据类型
dest_prec

bigint

目标数据库中数据类型的精度
dest_create_params

int

内部使用
dest_nullable

bit

为非 SQL Server 数据类型是否支持 NULL值

mssql sqlserver 系统函数DB_NAME用法简介说明


摘要:
下文讲述sqlserver中系统函数db_name的用法简介及说明,如下所示:


db_name函数功能说明

db_name函数用于返回数据库名称
db_name函数语法说明:
db_name([database_id])
—-参数说明—–
database_id:
此参数是一个int类型的数据类型,当此参数未输入时,则返回当前上下文所对应的“数据库名称”。
—–返回值说明
此系统函数返回一个nvarchar(128)长度的数据库名称

db_name函数举例应用

  SELECT DB_NAME() AS [当前数据库名称];
GO 
---获取dbId=5的数据库名称
SELECT DB_NAME(5)AS [数据库名称];
GO 
mssql_sqlserver_db_name系统函数的用法分享

mssql_sqlserver_db_name系统函数的用法分享

mssql sqlserver使用sql脚本找出”数据表”所包含的页信息


摘要:
下文讲述sqlserver中使用sql脚本查询出 一张数据表所包含的页信息的方法分享,如下所示:
实验环境:sql server 2012


在最新版的SQL Server数据库中,我们可以使用系统视图 sys.dm_db_database_page_allocations 获取一张数据表所包含的页信息,下文将讲述
“sys.dm_db_database_page_allocations” 所包含的具体信息及“sys.dm_db_database_page_allocations”的具体用法,如下所示:

  select * from
     sys.dm_db_database_page_allocations
      (@DatabaseId,@TableId,
       @IndexId,@PartionID,@Mode) 
 

—–参数说明——-
@DatabaseId:数据库的ID,可以使用DB_id()获取指定数据库Id或自身数据库Id
@TableId:数据表Id,可使用OBJECT_ID()函数通过表名获取表ID。
—此参数输入NULL,则返回所有数据库中所有表所涉及的页面信息
@IndexId: 索引的索引ID。 我们可以使用sys.indexes目录视图来获取索引ID。
—此参数输入NULL,可返回所有索引涉及的页面
@PartitionId: 分区的ID,
—此参数输入NULL时,则返回所有分区涉及的页面
@Mode:必填参数,有“LIMITED”或“DETAILED”两个参数。
“LIMITED”返回的信息较少。 “DETAILED”会返回详细/更多信息
例:

 SELECT DB_NAME(pa.database_id) AS [数据库名称] ,
 OBJECT_NAME(pa.object_id) AS [数据表名称] ,
 id.name AS [索引名称] ,
 pa.partition_id AS [partition_id],
 pa.is_allocated AS [is_allocated],
 pa.allocated_page_file_id AS [file_id] ,
 pa.allocated_page_page_id AS [page_id] ,
 pa.page_type_desc ,
 pa.page_level ,
 pa.previous_page_page_id AS [previous_page_id] ,
 pa.next_page_page_id AS [next_page_id] ,
 pa.is_mixed_page_allocation AS [is_mixed_page_allocation],
 pa.is_iam_page AS [is_iam_page],
 pa.allocation_unit_id AS [allocation_unit_id],
 pa.has_ghost_records AS [has_ghost_records]
FROM sys.dm_db_database_page_allocations(DB_Id() ,
  NULL, NULL,
  NULL, 'DETAILED') pa
 LEFT OUTER JOIN sys.indexes id ON id.object_id = pa.object_id
  AND id.index_id = pa.index_id
ORDER BY page_level DESC ,
 is_allocated DESC ,
 previous_page_page_id;