随笔分类 - MSSQL2019
摘要:无锁读取,无阻塞,速度快 nolock 读未提交,产生脏读 RCSI 开启RCSI,读取锁定数据 的最新提交版本 。无脏读,数据读一致性。
阅读全文
摘要:CREATE TABLE temp061_t ( ID INT IDENTITY(1,1) PRIMARY KEY, RoleType INT NOT NULL, isSior INT NULL ); ALTER TABLE temp061_t ADD CONSTRAINT chk_is_sior
阅读全文
摘要:兼容级别不支持openjson,只能自主实现功能了 使用方法,mssql炸裂函数 SELECT Id,item FROM temp031_t CROSS APPLY [dbo].getJsonArray 函数 CREATE FUNCTION [dbo].[getJsonArray] ( @str n
阅读全文
摘要:使用表值参数 /* Create a table type. */ CREATE TYPE LocationTableType AS TABLE ( LocationName VARCHAR(50) , CostRate INT ); GO /* Create a procedure to rece
阅读全文
摘要:1.使用 SET NOCOUNT ON 语句作为过程主体中的第一个语句。 也就是说,将其放置于紧接着 AS 关键字之后。 这会禁止显示在执行任何 SELECT、INSERT、UPDATE、MERGE 和 DELETE 语句后 SQL Server 发送回客户端的消息。 这可确保最大限度地减少生成的输
阅读全文
摘要:临时表部分捕获异常,不进行事务包装 目标表部门,捕获异常 并进行事务包装 建议使用 4和5进行过程异常处理 -- 临时表部分异常处理 1 ############################################################ -- 永远不会有2出现 ,控制报错后面语
阅读全文
摘要:-- 临时表部分异常处理 ############################################################ -- 永远不会有2出现 ,控制报错后面语句不执行 set XACT_ABORT on; exec('truncate table temp01t');
阅读全文
摘要:-- 永远不会有2出现 ,控制报错后面语句不执行 set XACT_ABORT on; exec('truncate table temp01t'); exec('insert into temp01t select 1'); exec('select 1/0 a'); exec('insert i
阅读全文
摘要:-- 开始事务 BEGIN TRANSACTION; BEGIN TRY -- 捕获语句区 ############################################################ --#########################################
阅读全文
摘要:刷新视图 如果视图的底层表结构发生了变化(例如添加或删除了列),可以尝试刷新视图。使用以下命令: sql 复制 EXEC sp_refreshview 'v_tbdTravelOkOther2'; 这将重新绑定视图的元数据,确保其与底层表的结构保持一致 异常报错 Executed as user:
阅读全文
摘要:declare @sql nvarchar(1000) declare @t nvarchar(10)=convert(nvarchar(10),getdate(),23) declare @t1 nvarchar(10)=N'_'+Replace(@t,'-','') declare @tab n
阅读全文
摘要:CREATE FUNCTION [dbo].[split] ( @splitstring varchar(max), @separator CHAR(1) = ',' ) RETURNS @splitstringstable TABLE ( [item] VARCHAR(200) ) AS BEGI
阅读全文
摘要:CREATE FUNCTION dbo.incrRate(@val01 decimal(36,4),@val02 decimal(36,4)) RETURNS decimal(36,4) AS -- 增减比 BEGIN DECLARE @re_val decimal(36,4)=null; if i
阅读全文
摘要:CREATE FUNCTION dbo.ratio(@val01 decimal(36,4),@val02 decimal(36,4)) RETURNS decimal(36,4) AS -- 占比 BEGIN DECLARE @re_val decimal(36,4)=null; if isnul
阅读全文
摘要:查看分区范围 SELECT SCHEMA_NAME(t.schema_id) AS SchemaName, t.name AS TableName, i.name AS IndexName, p.partition_number AS PartitionNumber, f.name AS Parti
阅读全文
摘要:使用分区表提高并发能力和查询处理性能(需命中分区) CREATE PARTITION FUNCTION RangePF1 ( INT ) AS RANGE LEFT FOR VALUES (10, 100, 1000) ; SELECT $PARTITION.RangePF1 (1000) ; CR
阅读全文
摘要:在删除表中大量数据后,进行数据库收缩,释放空间,导致数据移动,索引需要重新组织。 重新组织表中的所有索引 下面的示例重新组织 AdventureWorks2022 数据库中 HumanResources.Employee 表内的所有索引。 ALTER INDEX ALL ON HumanResour
阅读全文
摘要:MSSQL MD5哈希值 select CONVERT(VARCHAR(32), HASHBYTES('MD5', '13000000000'), 2) a 该函数入参哈希目标字符串,varchar和nvarchar 结果字符串不一致,入参需要统一为 varchar,这样与工具加密结果一致。 con
阅读全文
摘要:表提示用于在数据操作语言 (DML) 语句中替代查询优化器的默认行为。 可以指定锁定方法、一个或多个索引、查询处理操作(如表扫描或索引查找),或其他选项。 表提示在 DML 语句的 FROM 子句中指定,仅影响在该子句中引用的表或视图。 注意 由于 SQL Server 查询优化器通常会为查询选择最
阅读全文
摘要:正在尝试读取由另一个事务更新或删除的数据。 查询使用的是 NOLOCK 锁提示或 READ UNCOMMITTED 事务隔离级别。 通常,系统拒绝用户访问其他事务正在更改的数据,因为已锁定该数据。 但是,利用** NOLOCK 锁提示和 READ UNCOMMITTED 事务隔离级别,可以允许查询对
阅读全文

浙公网安备 33010602011771号