厦门德仔
分享与交流:信息化建设、数字化转型、项目管理、流程梳理与再造、前后端开发、财务管理、数据库、网络、家庭教育与人生感悟等希望我的博客能带您愉快心情。
展开
-
【SQLSERVER】查询Job作业基本信息及执行情况
SELECT[job].[job_id] AS '作业唯一标示符',[job].[name] AS '作业名称'END AS '最后执行时间'WHEN 0 THEN '失败'WHEN 1 THEN '成功'WHEN 2 THEN '重试'WHEN 3 THEN '取消'WHEN 4 THEN '正在运行'END AS '最后执行状态'3 , 0 , ':' ), 6 , 0 , ':' ) AS '最后运行持续时间',[jobh].[message] AS '最后运行状态信息'原创 2024-04-02 08:55:17 · 549 阅读 · 0 评论 -
【SQLServer】使用DMVs查找慢查询
以下查询支持SQL Server 2014以及更高版本,部分不兼容低版本。原创 2024-04-02 08:46:22 · 216 阅读 · 0 评论 -
【SQLServer】sqlserver死锁检测
运行sp_who2,看blk by这一列, 如果这栏不为空,有一个数字,这就是造成阻塞(blocking)的线程id. 然后运行DBCC Inputbuffer(线程id), 就可以看见这个线程在干什么。原创 2024-04-02 08:37:52 · 163 阅读 · 0 评论 -
【SqlServer】Alwayson收缩日志
如果log_reuse_wait_desc返回"nothing",就可以手动DBCC SHRINKFILE收缩了。加入高可用组之后,不能设置成简单模式。原创 2024-04-01 15:35:53 · 305 阅读 · 0 评论 -
[MSSQL]自定义函数之从字符串提取数字
之前写过从字符串中提取字母。某些场景需要从字符串中提取字母。原创 2024-01-24 16:08:09 · 420 阅读 · 0 评论 -
【高可用】SQL Server 2019 无域+WSFC搭建Always On环境图文步骤
看了下现在网上的很多文章,搭建Always On的环境都需要配置域服务器,配置步骤很多也很复杂,对说实话我对WinServer操作系统不是很熟,很多组件配置东西都是网上找资料,图形化界面用着很不顺手(有点怀念Linux的命令行 😂),现在手头上正好有个新项目,客户只提供了两台服务器,正好SQL Server 2019也支持无域模式的Always On,故此记录一下。软件版本操作系统SQL SERVER服务器IP主数据库辅助数据库。原创 2024-01-10 16:36:14 · 769 阅读 · 0 评论 -
【SQL】关于SQL异地备份的方法
方案优势劣势方案一稳定,工作组模式需新增用户第一次设置SQL同名登录时需重启服务生效方案二不太稳定需要第三方软件支持,且本机备份失败,异地也就失败了方案三稳定异服务器地不同文件夹同名用户访问只允许一次连接限制方案四稳定如果备份后未删除映射,存在安全隐患,服务器中毒可能通过未删除映射盘符感染。原创 2023-03-17 08:54:09 · 901 阅读 · 0 评论 -
[MSSQL]批量删除包含某字符串数据表||存储过程||函数
批量删除表名包含某字符串的数据表&批量删除存储过程包含某字符串的存储过程批量删除表名包含某字符串的数据表&批量删除存储过程包含某字符串的存储过程批量删除数据表批量删除存储过程批量删除表名包含某字符串的数据表&批量删除存储过程包含某字符串的存储过程由于历史原因,在某些时候会数据库账套中直接新增数据表和存储过程,同时也可能进行转移。批量删除数据表CREATE procedure sys_DeleteTableByTableName(@bianliang varchar(100))原创 2022-01-14 07:56:52 · 808 阅读 · 0 评论 -
[MSSQL]SQLServer之数据库行锁
行锁使用注意事项1、ROWLOCK行级锁确保在用户取得被更新的行,到该行进行更新,这段时间内不被其它用户所修改。因而行级锁即可保证数据的一致性,又能提高数据操作的并发性。2、ROWLOCK告诉SQL Server只使用行级锁,ROWLOCK语法可以使用在SELECT,UPDATE和DELETE语句中。3、ROWLOCK指定通常采用页锁或表锁时,采用行锁。 在从 SNAPSHOT 隔离级别操作的事务中指定时,除非将 ROWLOCK 与需要锁的其他表提示(例如,UPDLOCK 和 HOLDLOCK)组合,原创 2021-11-16 17:09:47 · 2814 阅读 · 0 评论 -
[MSSQL]SQLServer之创建分布式事务
分布式事务创建注意事项指定一个由 Transact-SQL 分布式事务处理协调器 (MS DTC) 管理的 Microsoft 分布式事务的起点。执行 BEGIN DISTRIBUTED TRANSACTION 语句的 SQL Server 数据库引擎的实例是事务创建者,并控制事务的完成。 当为会话发出后续 COMMIT TRANSACTION 或 ROLLBACK TRANSACTION 语句时,控制实例请求 MS DTC 在所涉及的所有实例间管理分布式事务的完成。事务级别的快照隔离不支持分布式事务原创 2021-11-16 17:01:29 · 622 阅读 · 0 评论 -
[MSSQL]SQLServer之创建分布式事务
SQLServer之创建分布式事务显式事务定义备注标记的事务使用T-SQL脚本创建显式事务语法:语法解析:示例:示例结果:显式事务定义显式事务以 BEGIN TRANSACTION 语句开始,并以 COMMIT 或 ROLLBACK 语句结束。备注BEGIN TRANSACTION 使 @@TRANCOUNT 按 1 递增。BEGIN TRANSACTION 代表一点,由连接引用的数据在该点逻辑和物理上都一致的。 如果遇上错误,在 BEGIN TRANSACTION 之后的所有数据改动都能进行回滚原创 2021-11-16 16:57:52 · 567 阅读 · 0 评论 -
[MSSQL]SQL不同服务器数据库之间的数据操作整理(完整版)
@TOC------------------------------------------------------------------------------------ Author : htl258(Tony)-- Date : 2010-06-25 22:23:18-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)-- Jul 9 2008 14:43:34--转载 2020-12-16 13:59:59 · 414 阅读 · 0 评论 -
[MSSQL]分组排序实现指定列重复项只显示一次
通常我们中国式报表指定列重复项只显示一次:很多时候我们都在前端或者报表显示处理,那么在数据库脚本可以么?利用分许排序可以实现:-- ============================================= -- Author: <David Gong> -- Create date: <2020-12-04> -- Description: <采购件数量分组统计> -- ==========================原创 2020-12-04 14:02:20 · 455 阅读 · 0 评论 -
[MSSQL]利用游标+事务批量更新邮件任务预警
利用游标+事务批量更新邮件任务预警背景传统方式改进作业流程图背景大部分企业一般都有自研或通过系统配置邮件预警系统。涉及到邮件接受人,抄送人,密送人。存在以下两种情况给运维带来一点压力;如果预警任务比较多,人员变动比较频繁的时候。手动作业显得效率低下。企业邮件地址批量变更传统方式通过写一个脚本,批量更新。针对单个地址变更OK,如果批量效率也显得比较低改进作业总体思路:(1)设计变更表([EmailUpdate]):[OldEmail],[NewEmail](2)制作Web页面支持Ex原创 2020-09-04 08:26:31 · 356 阅读 · 0 评论 -
[MSSQL]SQL实现工作日处理函数(标准节假日)
SQL实现工作日处理函数-标准节假日计算两个日期相差的工作天数在指定日期上,增加指定工作天数后的日期计算两个日期相差的工作天数if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_WorkDay]') and xtype in (N'FN', N'IF', N'TF'))drop function [d...转载 2019-10-31 08:30:37 · 2812 阅读 · 0 评论 -
[MSSQL]SQL事务处理
通常我们在数据处理中,必须保证数据完整性,一致性。 (1)批量处理数据,由于数据格式不正确,可能导致数据处理不完整。 (2)多表数据处理:单头单身批量写入。 (3)银行转账,转账金额大于存款余额 (4)违法数据约束,如最高工资等在编写T-SQL时候,需要用到事务控制。/****** Object: StoredProcedure [dbo].[Proc_Test_commit1]...原创 2019-06-21 10:33:22 · 2033 阅读 · 0 评论 -
[MSQQL]sql format 格式化数字(前面补0)
将一个数字例如33,或1使用t-sql语句转换成033或001 以下是详细分析: 1、select power(10,3)得到1000 2、select cast(1000+33 as varchar) 将1000转换类型 3、select right(100033,3) 从右边取3个字符得到033 最后结果是: select right(cast(power(10,3) ...转载 2019-05-29 15:42:29 · 1614 阅读 · 0 评论 -
[MSSQL]开启/关闭Ad Hoc Distributed Queries组件
SQL Server 阻止了对组件“Ad Hoc Distributed Queries”的 STATEMENT“OpenRowset/OpenDatasource”的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用“Ad Hoc Distributed Queries”。有关启用“Ad Hoc Distributed Queries”...原创 2018-12-11 09:28:05 · 1205 阅读 · 0 评论 -
[MSSQL]帐户当前被锁定,所以用户 sa 登录失败。系统管理员无法将该帐户解锁 解决方法
‘帐户当前被锁定,所以用户 ‘sa’ 登录失败。系统管理员无法将该帐户解锁’解决方法 如果短时间内不停连接,就会被SQL SERVER误认为是这是攻击,会将此账号锁定。 要用windows身份验证登录,在查询分析器里输入:ALTER LOGIN sa ENABLE ;GOALTER LOGIN sa WITH PASSWORD = 'password' unlock, check_...转载 2018-07-04 19:28:43 · 20398 阅读 · 0 评论 -
[MSSQL]with check option和with grant option
·with check option表示对视图进行update、insert、delete操作时,只要保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式) SQL语言用CREATE VIEW 命令创建视图,其一般格式如下。 CREATE VIEW<试图名> [(<列名>[,<列名>]…)] AS <子查询> [WITH CHECK OPTION]; eg.已知关系模式:转载 2017-12-20 09:25:48 · 1349 阅读 · 0 评论 -
[数据库管理]-并发控制
一、并发操作中存在的问题事务并发执行会产生以下几个问题: 1. 丢失修改:两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1提交的结果,导致T1的修改丢失。 2. 读“脏数据”:事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因撤销,这时T1修改过的数据恢复原值,T2得到的数据就与数据库中的数据不一致,则T2读到的数据就为“脏”数据,即不正确的数据。原创 2017-11-06 09:13:06 · 957 阅读 · 0 评论 -
[MSSQL]SQL Server中的RAND函数的介绍和区间随机数值函数的实现
转自:http://www.cnblogs.com/dzy863/p/5063558.html工作中会遇到SQL Server模拟数据生成以及数值列值(如整型、日期和时间数据类型)随机填充等等任务,这些任务中都要使用到随机数。鉴于此,本文将对SQL Server中随机数的使用简单做个总结 。 T-SQL 随机有关的三个函数 RAND([seed] 此函数生成从0到1之间随机 floa转载 2017-10-20 09:31:59 · 1040 阅读 · 0 评论 -
[MSSQL]事务日志还原
前提:①必须有数据库的完整备份(做个备份计划); ②数据库恢复模式是完整的(full)。 –1.完整备份数据库,一般企业都有做日备份。BACKUP DATABASE ZE TO DISK = N'D:\DB\ZE_20170712_0903.bak'; –2.故障发生(09:11模拟勿删数据)WAITFOR TIME '09:11'DELETE FROM INVMB WH原创 2017-09-12 09:35:49 · 750 阅读 · 1 评论 -
[MSSQL]SQL查询结果转换成HTML并通过邮件预警
上一篇文章讲解到配置数据库邮件实现发送邮件功能。通常我们有这样的需求通过SQL查询语句结果发送邮件给相关人员。邮件的内容为HTML格式。案例:-- =============================================-- Author: -- Create date: -原创 2017-09-01 08:49:46 · 2982 阅读 · 1 评论 -
[SQL]SQL Server 2008 通过配置数据库邮件实现发送邮件功能
1.简单了解数据库邮件的概念和使用的传输协议及系统体系: 数据库邮件是从 SQL Server 数据库引擎中发送电子邮件的企业解决方案。通过使用数据库邮件,数据库应用程序可以向用户发送电子邮件。邮件中可以包含查询结果,还可以包含来自网络中任何资源的文件。 无需 Microsoft Outlook 或扩展消息处理应用程序编程接口(扩展 MAPI)。数据库邮件使用标准的简单邮件传输协议 (S转载 2017-09-01 08:39:20 · 950 阅读 · 0 评论 -
[MSSQL]禁止删库
数据库级触发器,防止删库。CREATE TRIGGER [TR_CannotDropDatabase] ON ALL SERVER FOR DROP_DATABASEas BEGIN PRINT '不能删除此数据库' ROLLBACK TRANSACTION ENDGOSET ANSI_NULLS OFFGOSET QUOTED_IDENTIFIER OFFGO原创 2017-05-04 15:17:54 · 874 阅读 · 1 评论 -
[MSSQL]cross join与cross apply的区别与应用
What is Cross Join in SQL? The SQL CROSS JOIN produces a result set which is the number of rows in the first table multiplied by the number of rows in the second table if no WHERE clause is used along原创 2017-04-25 13:10:40 · 2791 阅读 · 1 评论 -
[MSSQL]数据库展开报错:值不能为空。 参数名: viewInfo (Microsoft.SqlServer.Management.SqlStudio.Expl
HR服务器的数据库报了一个不常见的错误,记录下来分享给大伙,如果遇到同样的问题,希望可以得到解决。 服务器环境:windows server 2008(64Bit) 数据库版本:SQL server 2008 R2 错误提示:值不能为空。参数名: viewInfo (Microsoft.SqlServer.Management.SqlStudio.Expl;如下图: 在路径:C:\Use原创 2017-03-30 10:52:41 · 9341 阅读 · 6 评论 -
[MSSQL]如何获取日期月份的英文缩写
方法一:select SubString('JanFebMarAprMayJunJulAugSepOctNovDec',Month(GETDATE())*3-2,3)方法二:SET LANGUAGE 'us_english'select left(DATENAME(mm,'20161122'),3)方法三:无需设置当前会话语言项select SUBSTRING(DATENAME(MONTH,ge原创 2016-12-23 07:46:35 · 8185 阅读 · 0 评论 -
[MSSQL]SQL Server 2008 收缩日志 清空删除大日志文件
SQL2008 的收缩日志 由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消: (SQL2005) BackupLog DNName with no_log go dumptransaction DNName with no_log go USE DNName DBCC SHRINKFILE (2)Go(SQL20原创 2016-09-27 08:47:22 · 2840 阅读 · 0 评论 -
SQL Server 中master..spt_values的应用
天在做数据分析报表的时候遇到一个这样的问题。表结构如下。部门编码、部门名称、部门人员ID(中间用逗号分割)我想通过和人员表链接,查询出一个新的数据集,查询出的结果集格式如下:人员信息(ID或者姓名)、部门编码、部门名称 以前都是通过程序遍历拆分表字段组成新的集合字段,然后在结合SQL语句查询出结果集,但是这个报表要求只能通过SQL语句实现,以前记得可以通过写字段分割函数再结合游标实现。然而今天在网转载 2016-06-23 11:52:55 · 4110 阅读 · 0 评论 -
[MSSQL]不能读取已注册的服务器列表
解决办法:原创 2016-04-30 06:17:43 · 6687 阅读 · 0 评论 -
[易飞]关于内部备料订单动态跟踪库存和销货量的统计
一 需求 各位销售总: 关于年度会议上提到,希望销售关注备料订单数量动态维护问题, 和IT沟通过, 我们可以在OA提供如下数据, 供各位参考,判断是否有必要调整备料订单的数量, 同时也请提出你们希望还要体现那些信息方便你们判断是否要做备料调整。 客户 料号 品名或规格 备料总数 最近2个月的销量 最新备料时间 公司库存 VMI库存 在制数量 合肥XXX 1原创 2016-01-27 09:44:47 · 3653 阅读 · 2 评论 -
[MSSQL]服务器端压力过大导致SSMS异常
登陆SSMS时: 编辑表时: 查看事件无重大异常,查看内存接近98%,360提示进程97%。 会不会以为服务器压力过大导致的?待MSSQL空闲期间,重启测试。结果重启之后正常。原创 2015-12-15 07:50:44 · 1676 阅读 · 0 评论 -
[MSSQL]在T-SQL语句中访问远程数据库(openrowset/opendatasource/openquery)
1、启用Ad Hoc Distributed Queries在使用openrowset/opendatasource前搜先要启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServer默认是关闭的启用Ad Hoc Distributed Queries的方法SQL Server 阻止了对组件 ‘Ad Hoc Distributed Queries’ 的 ST转载 2015-12-04 13:41:53 · 4329 阅读 · 0 评论 -
[MSSQL]SQL Server2008附加数据库之后显示为只读时解决方法
啰嗦的话就不多说了,直入主题吧!方案一:碰到这中情况一般是使用的sa账户登录的,只要改为Windows身份验证,再附加数据库即可搞定。方案二:使用sa登录SQL Server2008附加数据库,附加之后数据库为只读的,然后点数据库–>“属性”–>“选项”–>“状态”,发现“数据库为只读”这一项为True,改为false,如果能够修改的话,那么恭喜你,你的人品不错哦!我在修改的时候又报了这样一个错误:转载 2015-12-04 11:09:09 · 4416 阅读 · 0 评论 -
[MSSQL]SQL Server 事务语法
事务全部是关于原子性的。原子性的概念是指可以把一些事情当做一个单元来看待。从数据库的角度看,它是指应全部执行或全部都不执行的一条或多条语句的最小组合。 为了理解事务的概念,需要能够定义非常明确的边界。事务要有非常明确的开始和结束点。SQL Server中的每一条SELECT、INSERT、UPDATE和DELETE语句都是隐式事务的一部分。即使只发出一条语句,也会把这条语句当做一个事务-要么执行语原创 2015-11-04 09:09:52 · 2788 阅读 · 2 评论 -
[MSSQL]磁盘空间&SQL日志&作业执行情况
---查看每个磁盘剩余空间大小(M)Exec master.dbo.xp_fixeddrives --或者declare @Fixed_tb table(Drive_NO char(1),Remainder_M bigint)INSERT INTO @Fixed_tb exec master.dbo.xp_fixeddrivesselect Drive_NO '驱动盘符',Remainde原创 2015-10-23 08:54:07 · 1970 阅读 · 0 评论 -
[MSSQL]MSSQL 基础之善用Char类型
引言今天为什么要开题来说Char类型呢?在近几天的社区问题中发现,有些朋友对char、varchar、nvarchar这几种字符类型的特性还不是很清楚。以至在实际的使用中,不可避免的产生了一些问题。类型介绍char类型char(n)类型,长度是固定,索引效率高,n介于1-8000之间的数据。假设为char(10)的变量存储一个”abc”字符串,那么实际存储为abc+7个空字符。所以在使用时如果不希望转载 2015-10-22 11:09:39 · 1565 阅读 · 0 评论 -
[MSSQL]SQL Server OBJECT_ID用法-判断对象是否存在
OBJECT_ID ( ‘[ database_name . [ schema_name ] . | schema_name . ] object_name’ [ ,’object_type’ ] )当指定临时表名时,除非当前数据库为 tempdb,否则必须在该临时表名之前加上数据库名称。例如:SELECT OBJECT_ID(‘tempdb..#mytemptable’)。 object转载 2015-10-21 13:32:27 · 4302 阅读 · 0 评论