厦门德仔
分享与交流:信息化建设、数字化转型、项目管理、流程梳理与再造、前后端开发、财务管理、数据库、网络、家庭教育与人生感悟等希望我的博客能带您愉快心情。
展开
-
【MSSQL】MSSQL 全角/半角转换
【代码】【MSSQL】MSSQL 全角/半角转换。原创 2025-05-22 12:12:55 · 41 阅读 · 0 评论 -
【MSSQL】SQL Server性能优化终极指南:临时表、表变量与CTE的巅峰对决
在复杂SQL Server项目中,开发者总会面临这个经典难题:该选择临时表、表变量还是公用表表达式(CTE)?本文将通过性能实测、使用场景与隐藏特性分析,助您做出明智决策。原创 2025-04-16 09:17:57 · 568 阅读 · 0 评论 -
【MSSQL】未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序
MSSQL2019 导入Excel的一个错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序就会联想到是否缺少对应Office版本的AccessDatabaseEngine_X64下载Office_2016版本的引擎并安装测试:导入仍旧出现。原创 2025-04-14 09:35:13 · 297 阅读 · 0 评论 -
【MSSQL】sql server怎样整理某个表的碎片
碎片化是指数据在物理存储上不连续,导致数据库无法有效利用存储空间。碎片化通常分为两种类型:内部碎片:数据页中存在空闲空间,没有被有效利用。外部碎片:数据页之间的不连续性,导致查询时需要更多的 I/O 操作。原创 2025-04-02 12:22:14 · 471 阅读 · 0 评论 -
【SQL】查看触发器名称、所属的表(包括架构)、事件类型、触发器类型(AFTER/INSTEAD OF)、是否启用、创建日期
触发器名称、所属的表(包括架构)、事件类型、触发器类型(AFTER/INSTEAD OF)、是否启用、创建日期,可能还有触发器定义的SQL代码。同时需要处理多事件的情况,比如一个触发器可能同时在INSERT和UPDATE时触发,所以需要将这些事件类型合并显示。原创 2025-03-12 11:13:51 · 167 阅读 · 0 评论 -
【SQL】客户报价/供应商料件价格分量计价函数
在ERP系统中通常会涉及到取最新供应商料件价格或最新客户报价,且包含生效日期和失效日期,存在单位转化率,币种以及分量计价。在做自定义报表或程序开发时候显得非常繁琐。故在底层Sql函数实现。原创 2025-02-26 10:45:45 · 195 阅读 · 0 评论 -
【MSSQL】因为数据库正在使用,所以无法获得对数据库的独占访问权” 解决方案汇总
因为数据库正在使用,所以无法获得对数据库的独占访问权。原创 2024-05-21 14:27:39 · 4834 阅读 · 1 评论 -
【SQLServer】sqlserver使用cpu比较高的语句
【代码】【SQLServer】sqlserver使用cpu比较高的语句。原创 2024-04-02 09:36:56 · 292 阅读 · 0 评论 -
【SQLSERVER】批量导出所有作业或链接脚本
1.在Microsoft SQL Server Management Studio中选择–>视图(v)–>对象资源管理器详细信息(F7)3.左侧的“对象资源管理器”界面–>点击“SQLSserver代理”–>点击“作业”。右侧界面就会显示有的作业。4.选中所有的作业–>右击–>“编写作业脚本为(S)”–>“create到©”–>“新查询编辑器窗口”2.SSMS图形界面,左侧是“对象资源管理器”,右侧是“对象资源管理器详细信息”界面。原创 2024-04-02 09:33:46 · 894 阅读 · 0 评论 -
【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 · 746 阅读 · 0 评论 -
【SQLServer】使用DMVs查找慢查询
以下查询支持SQL Server 2014以及更高版本,部分不兼容低版本。原创 2024-04-02 08:46:22 · 365 阅读 · 0 评论 -
【SQLServer】sqlserver死锁检测
运行sp_who2,看blk by这一列, 如果这栏不为空,有一个数字,这就是造成阻塞(blocking)的线程id. 然后运行DBCC Inputbuffer(线程id), 就可以看见这个线程在干什么。原创 2024-04-02 08:37:52 · 247 阅读 · 0 评论 -
【SQLServer】快速查看SQL Server中所有数据库中所有表的行数
【代码】【SQLServer】快速查看SQL Server中所有数据库中所有表的行数。原创 2024-04-02 08:32:28 · 2468 阅读 · 0 评论 -
[SqlServer]Always On 作业管理
在SQL Server 2022之前的版本,AlwaysON 无法自动同步元数据(包括用户、登录名、权限、SQL 代理作业、链接服务器)。在执行数据库切换之前,都要手动同步master、msdb里面的元数据,在2022版本中,AlwaysOn 增加了包含可用性组功能,解决了此问题。因此在SQL Server 2022 之前的版本,用户将数据库从单实例迁移到Always On架构,应当对自定义的作业需要进行适当改造,并且将“作业Job”任务创建到AlwaysON每一个副本中。在Always On可用性组中,所原创 2024-04-01 15:49:57 · 540 阅读 · 0 评论 -
【SqlServer】Alwayson收缩日志
如果log_reuse_wait_desc返回"nothing",就可以手动DBCC SHRINKFILE收缩了。加入高可用组之后,不能设置成简单模式。原创 2024-04-01 15:35:53 · 458 阅读 · 0 评论 -
[MSSQL]理解SQL Server AlwaysOn AG的备份
简单的说,你设置了备份规则,因此如果你在主副本上进行备份,你将承担风险。基本上,对于“首选辅助副本”,如果所有的辅助副本都offline了,备份就会在primary节点上;而“仅辅助副本”选项,在所有辅助副本都offline了,备份也不会在primary节点上,即备份会失败。所以,我再次做了测试。这里和设置是匹配的,因为我们定义了AG备份的首选项是辅助副本节点,而我们是在主副本节点执行的。毕竟,任意副本,表示所有的节点。翻译一下,我们可以理解"should"的意思是"是的,这可以很好地运行在辅助副本上。原创 2024-03-31 23:03:46 · 540 阅读 · 0 评论 -
[MSSQL]自定义函数之从字符串提取数字
之前写过从字符串中提取字母。某些场景需要从字符串中提取字母。原创 2024-01-24 16:08:09 · 486 阅读 · 0 评论 -
【MSSQL】SQL/C#剔除回车换行符
【代码】【MSSQL】SQL/C#剔除回车换行符。原创 2024-01-16 13:18:52 · 2117 阅读 · 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 · 1325 阅读 · 0 评论 -
【SQL】关于SQL异地备份的方法
方案优势劣势方案一稳定,工作组模式需新增用户第一次设置SQL同名登录时需重启服务生效方案二不太稳定需要第三方软件支持,且本机备份失败,异地也就失败了方案三稳定异服务器地不同文件夹同名用户访问只允许一次连接限制方案四稳定如果备份后未删除映射,存在安全隐患,服务器中毒可能通过未删除映射盘符感染。原创 2023-03-17 08:54:09 · 1015 阅读 · 0 评论 -
[MSSQL]批量删除包含某字符串数据表||存储过程||函数
批量删除表名包含某字符串的数据表&批量删除存储过程包含某字符串的存储过程批量删除表名包含某字符串的数据表&批量删除存储过程包含某字符串的存储过程批量删除数据表批量删除存储过程批量删除表名包含某字符串的数据表&批量删除存储过程包含某字符串的存储过程由于历史原因,在某些时候会数据库账套中直接新增数据表和存储过程,同时也可能进行转移。批量删除数据表CREATE procedure sys_DeleteTableByTableName(@bianliang varchar(100))原创 2022-01-14 07:56:52 · 854 阅读 · 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 · 2968 阅读 · 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 · 715 阅读 · 0 评论 -
[MSSQL]SQLServer之创建分布式事务
SQLServer之创建分布式事务显式事务定义备注标记的事务使用T-SQL脚本创建显式事务语法:语法解析:示例:示例结果:显式事务定义显式事务以 BEGIN TRANSACTION 语句开始,并以 COMMIT 或 ROLLBACK 语句结束。备注BEGIN TRANSACTION 使 @@TRANCOUNT 按 1 递增。BEGIN TRANSACTION 代表一点,由连接引用的数据在该点逻辑和物理上都一致的。 如果遇上错误,在 BEGIN TRANSACTION 之后的所有数据改动都能进行回滚原创 2021-11-16 16:57:52 · 654 阅读 · 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 · 457 阅读 · 0 评论 -
[MSSQL]分组排序实现指定列重复项只显示一次
通常我们中国式报表指定列重复项只显示一次:很多时候我们都在前端或者报表显示处理,那么在数据库脚本可以么?利用分许排序可以实现:-- ============================================= -- Author: <David Gong> -- Create date: <2020-12-04> -- Description: <采购件数量分组统计> -- ==========================原创 2020-12-04 14:02:20 · 499 阅读 · 0 评论 -
[MSSQL]利用游标+事务批量更新邮件任务预警
利用游标+事务批量更新邮件任务预警背景传统方式改进作业流程图背景大部分企业一般都有自研或通过系统配置邮件预警系统。涉及到邮件接受人,抄送人,密送人。存在以下两种情况给运维带来一点压力;如果预警任务比较多,人员变动比较频繁的时候。手动作业显得效率低下。企业邮件地址批量变更传统方式通过写一个脚本,批量更新。针对单个地址变更OK,如果批量效率也显得比较低改进作业总体思路:(1)设计变更表([EmailUpdate]):[OldEmail],[NewEmail](2)制作Web页面支持Ex原创 2020-09-04 08:26:31 · 391 阅读 · 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 · 3011 阅读 · 0 评论 -
[MSSQL]SQL事务处理
通常我们在数据处理中,必须保证数据完整性,一致性。 (1)批量处理数据,由于数据格式不正确,可能导致数据处理不完整。 (2)多表数据处理:单头单身批量写入。 (3)银行转账,转账金额大于存款余额 (4)违法数据约束,如最高工资等在编写T-SQL时候,需要用到事务控制。/****** Object: StoredProcedure [dbo].[Proc_Test_commit1]...原创 2019-06-21 10:33:22 · 2081 阅读 · 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 · 1706 阅读 · 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 · 1315 阅读 · 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 · 20863 阅读 · 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 · 1458 阅读 · 0 评论 -
[数据库管理]-并发控制
一、并发操作中存在的问题事务并发执行会产生以下几个问题: 1. 丢失修改:两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1提交的结果,导致T1的修改丢失。 2. 读“脏数据”:事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因撤销,这时T1修改过的数据恢复原值,T2得到的数据就与数据库中的数据不一致,则T2读到的数据就为“脏”数据,即不正确的数据。原创 2017-11-06 09:13:06 · 1042 阅读 · 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 · 1178 阅读 · 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 · 814 阅读 · 1 评论 -
[MSSQL]SQL查询结果转换成HTML并通过邮件预警
上一篇文章讲解到配置数据库邮件实现发送邮件功能。通常我们有这样的需求通过SQL查询语句结果发送邮件给相关人员。邮件的内容为HTML格式。案例:-- =============================================-- Author: -- Create date: -原创 2017-09-01 08:49:46 · 3040 阅读 · 1 评论 -
[SQL]SQL Server 2008 通过配置数据库邮件实现发送邮件功能
1.简单了解数据库邮件的概念和使用的传输协议及系统体系: 数据库邮件是从 SQL Server 数据库引擎中发送电子邮件的企业解决方案。通过使用数据库邮件,数据库应用程序可以向用户发送电子邮件。邮件中可以包含查询结果,还可以包含来自网络中任何资源的文件。 无需 Microsoft Outlook 或扩展消息处理应用程序编程接口(扩展 MAPI)。数据库邮件使用标准的简单邮件传输协议 (S转载 2017-09-01 08:39:20 · 1022 阅读 · 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 · 948 阅读 · 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 · 2843 阅读 · 1 评论