广告
返回顶部
首页 > 资讯 > 数据库 >总结SQL Server非常实用的脚本
  • 629
分享到

总结SQL Server非常实用的脚本

2024-04-02 19:04:59 629人浏览 八月长安
摘要

本篇内容主要讲解“总结SQL Server非常实用的脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“总结sql Server非常实用的脚本”吧!1、 查询数据

本篇内容主要讲解“总结SQL Server非常实用的脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“总结sql Server非常实用的脚本”吧!

1、 查询数据库所有表结构

通过该脚本可以快速查找表字段,或者生成数据库设计文档、进行数据库对比。

SELECT obj.name 表名, col.colorder AS 序号 , col.name AS 列名 , ISNULL(ep.[value], '') AS 列说明 , t.name AS 数据类型 , CASE WHEN col.isnullable = 1 THEN '1' ELSE '' END AS 允许空 , ISNULL(comm.text, '') AS 默认值, Coalesce(epTwo.value, '') AS documentation FROM dbo.syscolumns col LEFT JOIN dbo.systypes t ON col.xtype = t.xusertype inner JOIN dbo.sysobjects obj ON col.id = obj.id AND obj.xtype = 'U' AND obj.status >= 0 LEFT JOIN dbo.syscomments comm ON col.cdefault = comm.id LEFT JOIN sys.extended_properties ep ON col.id = ep.major_id AND col.colid = ep.minor_id AND ep.name = 'MS_Description' LEFT JOIN sys.extended_properties epTwo ON obj.id = epTwo.major_id AND epTwo.minor_id = 0 AND epTwo.name = 'MS_Description' WHERE obj.name in( SELECT ob.name  FROM sys.objects AS ob LEFT OUTER JOIN sys.extended_properties AS ep ON ep.major_id = ob.object_id AND ep.class = 1 AND ep.minor_id = 0 WHERE ObjectProperty(ob.object_id, 'IsUserTable') = 1  ) ORDER BY obj.name ;

2、SQLServer 查询数据库各个数据表、索引文件占用的存储空间

可以快速查询数据库中表、索引占用的存储空间,找到哪些表占用了大量的存储空间,便于进行数据库优化

CREATE PROCEDURE [dbo].[sys_viewTableSpace] AS   BEGIN   SET NOCOUNT ON;   CREATE TABLE [dbo].#tableinfo(  表名 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,  记录数 [int] NULL,  预留空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,  使用空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,  索引占用空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,  未用空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL )   insert into #tableinfo(表名, 记录数, 预留空间, 使用空间, 索引占用空间, 未用空间) exec sp_MSforeachtable "exec sp_spaceused '?'"   select * from #tableinfo order by 记录数 desc   drop table #tableinfo   END -- 执行方法 exec sys_viewtablespace

3、清理数据库日志文件

数据库日志文件一般都会非常大,甚至占用超过几百G甚至上T,如果不需要进行一直保留数据库日志文件,可以建一个数据库作业,定时清理数据库日志文件,具体可以采用下面的脚本。

USE master  ALTER DATABASE DB SET RECOVERY SIMPLE WITH NO_WaiT  ALTER DATABASE DB SET RECOVERY SIMPLE --调整为简单模式  USE DB  DBCC SHRINKFILE (N'DB_log' , 2, TRUNCATEONLY) --设置压缩后的日志大小为2M,可以自行指定  USE master  ALTER DATABASE DB SET RECOVERY FULL WITH NO_WAIT  ALTER DATABASE DB SET RECOVERY FULL --还原为完全模式

4、SQLServer查看锁表和解锁

工作中遇到查询的时候一直查询不出来结果,可以执行该脚本判断是否表,然后解锁就可以正常查询数据了。

-- 查询被锁表 select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName    from   sys.dm_tran_locks where resource_type='OBJECT'; --参数说明 spid   锁表进程 ;tableName   被锁表名 -- 解锁语句 需要拿到spid然后杀掉缩表进程 declare @spid  int  Set @spid  = 57 --锁表进程 declare @sql varchar(1000) set @sql='kill '+cast(@spid  as varchar) exec(@sql)

5、SQLServer生成日期维度表

该脚本可以生成一个日期维度的数据表,通过该数据表可以解决很多报表查询问题。非常实用。

--1、创建数据表 T_Date CREATE TABLE [dbo].[T_Date]( [the_date] [int] NOT NULL, [date_name] [nvarchar](30) NULL, [the_year] [int] NULL, [year_name] [nvarchar](30) NULL, [the_quarter] [int] NULL, [quarter_name] [nvarchar](30) NULL, [the_month] [int] NULL, [month_name] [nvarchar](30) NULL, [the_week] [int] NULL, [week_name] [nvarchar](30) NULL, [week_day] [int] NULL, [week_day_name] [nvarchar](30) NULL, CONSTRAINT [PK_T_Date] PRIMARY KEY CLUSTERED  ( [the_date] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,         IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  ON [PRIMARY] ) ON [PRIMARY] Go   -- 2、创建生成日期的存储过程 GO  SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO   CREATE PROCEDURE [dbo].[SP_CREATE_TIME_DIMENSION] @begin_date nvarchar(50)='2015-01-01' , @end_date nvarchar(50)='2030-12-31' as  declare  @dDate date=convert(date,@begin_date), @v_the_date varchar(10), @v_the_year varchar(4), @v_the_quarter varchar(2), @v_the_month varchar(10), @v_the_month3 varchar(2), @v_the_week varchar(2), @v_the_day varchar(10), @v_the_day2 varchar(2), @v_week_day nvarchar(10), @aDDDays int=1; WHILE (@dDate<=convert(date,@end_date)) begin set @v_the_date=convert(char(10),@dDate,112);--key值格式为yyyyMMdd set @v_the_year=DATEPART("YYYY",@dDate);--年份 set @v_the_quarter=DATEPART("QQ",@dDate);--季度 set @v_the_month=DATEPART("MM",@dDate);--月份(字符型) set @v_the_day=DATEPART("dd",@dDate);--日(字符型) set @v_the_week=DATEPART("WW",@dDate);--年的第几周 set @v_week_day=DATEPART("DW",@dDate); --星期几 -- 插入数据 insert into T_Date(the_date,date_name,the_year,year_name,the_quarter,  quarter_name,the_month,month_name,the_week,week_name,week_day,week_day_name) values( @v_the_date, convert(nvarchar(10),@v_the_year)+'年'+convert(nvarchar(10),@v_the_month)   +'月'+convert(nvarchar(10),@v_the_day)+'日', @v_the_year, convert(nvarchar(10),@v_the_year)+'年', @v_the_quarter, convert(nvarchar(10),@v_the_year)+'年'+convert(nvarchar(10),@v_the_quarter)+'季度', case when @v_the_month>=10 then  convert(int,(convert(nvarchar(10),@v_the_year)+convert(nvarchar(10),@v_the_month))) else convert(int,convert(nvarchar(10),@v_the_year)+'0'              +convert(nvarchar(10),@v_the_month)) end, convert(nvarchar(10),@v_the_year)+'年'+convert(nvarchar(10),@v_the_month)+'月', @v_the_week ,'第'+convert(nvarchar(10),@v_the_week)+'周', @v_week_day, case @v_week_day-1  when 1 then '星期一'  when 2 then '星期二'  when 3 then '星期三' when 4 then '星期四'  when 5 then '星期五'  when 6 then '星期六' when 0 then '星期日' else '' end ); set @dDate=dateadd(day,@adddays,@dDate); continue if @dDate=dateadd(day,-1,convert(date,@end_date)) break end   -- 3、执行存储过程生成数据 GO DECLARE @return_value int EXEC    @return_value = [dbo].[SP_CREATE_TIME_DIMENSION] SELECT    'Return Value' = @return_value GO

到此,相信大家对“总结SQL Server非常实用的脚本”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

您可能感兴趣的文档:

--结束END--

本文标题: 总结SQL Server非常实用的脚本

本文链接: https://www.lsjlt.com/news/61935.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 总结SQL Server非常实用的脚本
    本篇内容主要讲解“总结SQL Server非常实用的脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“总结SQL Server非常实用的脚本”吧!1、 查询数据...
    99+
    2022-10-18
  • 总结几段非常有用的脚本
    本篇内容主要讲解“总结几段非常有用的脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“总结几段非常有用的脚本”吧!一、在网络硬件故障或网络故障断开时发送警告 复制代码 代码如下:str...
    99+
    2023-06-08
  • python常用小脚本实例总结
    目录前言打印16进制字符串文件合并多线程下载图集多线程下载图片爬虫抓取信息爬虫多线程下载电影名称串口转tcp工具远程读卡器server端黑客rtcp反向链接调用c的动态库示例tcp的...
    99+
    2022-11-11
  • Sql Server数据库常用Transact-SQL脚本
      数据库 创建数据库 USE master ; GO CREATE DATABASE Sales ON ( NAME = Sales_dat, FILENAME = "C:Program FilesMicr...
    99+
    2019-06-22
    Sql Server数据库常用Transact-SQL脚本
  • 总结几个非常实用的Python库
    自带库 一、datetime datetime是Python处理日期和时间的标准库。 1、获取当前日期和时间 >>> from datetime import ...
    99+
    2022-11-12
  • Linux下一些常用的Shell脚本总结
    这篇文章主要介绍“Linux下一些常用的Shell脚本总结”,在日常操作中,相信很多人在Linux下一些常用的Shell脚本总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下一些常用的Shell脚...
    99+
    2023-06-09
  • SQL SERVER常用的日期与时间查询总结
    常用的日期查询 ----YYYY --当前年份第一天的前一天 SELECT TRUNC(SYSDATE,'yyyy') - 1 + 8 / 24 FROM DUAL---2...
    99+
    2022-11-13
  • Sql Server数据库常用Transact-SQL脚本的示例分析
    这篇文章主要介绍了Sql Server数据库常用Transact-SQL脚本的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Tran...
    99+
    2022-10-18
  • mysql之数据库常用脚本总结
    目录一、库新增库删除库修改库查询库使用库二、表结构2.1表2.2字段三、数据记录新增数据删除数据修改数据查询数据(博大精深,暂不讨论)总结前言:统计维度 - - 库、表结构、数据记录 一、库 新增库 create dat...
    99+
    2023-03-31
    mysql数据库 mysql常用脚本 mysql数据库常用脚本
  • 非常实用的23个Shell脚本实例
    shell脚本是帮助程序员和系统管理员完成费时费力的枯燥工作的利器,是与计算机交互并管理文件和系统操作的有效方式。区区几行代码,就可以让计算机接近按照你的意图行事。 为大家整理了23个实例,通过23个实战经典脚本实例,...
    99+
    2022-06-04
    Shell脚本实例 Shell实用脚本
  • SQL Server模糊查询的常见方法总结
    在数据查询的时候,有完整查询和模糊查询之分.在Access和SQL Server中使用模糊查询有一下几种查询: 1.用_通配符查询 "_"号表示任意单个字符,该字符号只能匹配一个字符...
    99+
    2022-11-11
  • SQL Server数据库的基本操作语句总结
    这篇文章主要介绍“SQL Server数据库的基本操作语句总结”,在日常操作中,相信很多人在SQL Server数据库的基本操作语句总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2022-10-18
  • 七个非常实用的Python工具包总结
    目录一、Faker二、Pywebio三、Airflow四、Loguru五、Pydash六、Weights & Biases七、PyCaretSummary一、Faker 生产...
    99+
    2022-11-12
  • 常用的sql语句总结
    这篇文章主要介绍“常用的sql语句总结”,在日常操作中,相信很多人在常用的sql语句总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”常用的sql语句总结”的疑惑有所帮助!接...
    99+
    2022-11-30
    sql
  • SQL Server使用脚本实现自动备份
    因服务器安装的SQL Server版本不支持自动定时备份,需自行实现,大概思路为: 创建备份数据库的脚本 创建批处理脚本执行步骤一中的脚本 创建Windows定时任务执行步骤二中的脚本 1. 创建SQL脚本 新建db_backup.s...
    99+
    2016-11-15
    SQL Server使用脚本实现自动备份
  • 实用的SQL Server脚本函数方法有哪些
    这篇文章主要讲解了“实用的SQL Server脚本函数方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“实用的SQL Server脚本函数方法有哪些”...
    99+
    2022-10-18
  • Oracle常用的SQL方法总结
       在项目中一般需要对一些数据进行处理,以下提供一些基本的SQL语句:     1.基于条件的插入和修改:需要在表中插入一条记录,插入前根据key标识判断...
    99+
    2022-10-18
  • Shell脚本中的数组用法总结
    这篇文章主要讲解了“Shell脚本中的数组用法总结”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell脚本中的数组用法总结”吧!1、怎么声明一个数组变量?直接赋值:代码如下:array[...
    99+
    2023-06-09
  • Linux环境shell脚本获取时间的常用命令总结
    本篇内容介绍了“Linux环境shell脚本获取时间的常用命令总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 相关概念Linux的系...
    99+
    2023-06-16
  • Shell脚本test命令使用总结和实例
    Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。 数值测试 参数 说明 -eq ...
    99+
    2022-06-04
    脚本 实例 命令
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作