
sql server
苦茶折柳
指鹿为马,不负韶华。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SQLserver索引的优化和使用
在SQL Server中,索引的优化和有效使用是提高查询性能的关键。以下是一些详细的步骤和最佳实践,帮助你优化和使用索引。原创 2024-11-04 10:27:19 · 1032 阅读 · 0 评论 -
SQLserver 表拆分
在SQL Server中,表拆分(Table Partitioning)是一种将大型表物理地分成多个更小、更易于管理的部分的技术。表拆分可以显著提高查询性能,特别是在处理大量数据时。以下是详细的步骤和示例,帮助你理解和实现SQL Server中的表拆分。原创 2024-11-04 10:03:19 · 614 阅读 · 0 评论 -
SQL Server动态列转行
是 SQL Server 2017 (版本 14.x) 及更高版本中引入的一个聚合函数,它允许你将多个行的值组合成一个字符串,并且你可以指定一个分隔符来分隔这些值。函数是不可用的,因为这是一个在 SQL Server 2017(版本 14.x)及更高版本中引入的聚合函数。方法,这是 SQL Server 较早版本中常用的技巧来聚合字符串。一旦你有了这个列表,你就可以像之前的示例那样构建你的动态 PIVOT 查询。函数来移除字符串最前面的逗号,从而得到一个由逗号分隔的列名列表。函数在你的环境中是不可用的。原创 2024-10-22 15:59:55 · 839 阅读 · 0 评论 -
sql server 查找数据库中是否存在某个存储过程
可能不包含所有你需要的关于存储过程的详细信息,并且它主要用于SQL标准的兼容性。视图中是不区分大小写的,但出于最佳实践,建议你在比较时使用与存储过程定义时相同的大小写(或全部大写/小写),或者使用。在SQL Server中,要查找数据库中是否存在某个存储过程,你可以使用系统视图。这种方法对于检查存储过程是否存在非常有用,尤其是在编写条件逻辑或自动化脚本时。替换为你想要检查的存储过程的实际名称。替换为存储过程所在的架构名称(例如,替换为存储过程名称,将。'你的存储过程名称''你的存储过程名称'原创 2024-08-03 11:58:22 · 655 阅读 · 0 评论 -
sql server 删除指定字符串
【代码】sql server 删除指定字符串。原创 2023-08-08 18:02:49 · 813 阅读 · 0 评论 -
sql server数据库资源池连接池爆满处理
超时时间已到,但是尚未从池中获取链接。原创 2023-02-10 11:33:42 · 2386 阅读 · 0 评论 -
sql server 创建存储过程 查看死锁 死锁处理
【代码】sql server 查看死锁 死锁处理。原创 2023-02-10 11:24:12 · 458 阅读 · 0 评论 -
sql server向存在表添加字段
add comment DECIMAL – 指定需要添加的字段和数据类型、参数。alter table t_student --选择需要添加字段的信息表。原创 2023-01-09 16:30:29 · 523 阅读 · 0 评论 -
sql作业失败,找不到存储过程
查看历史纪录时发现报错后来发现原因是未选择执行的数据库,需要选择你存储过程所在的数据库,不要使用默认的master数据库修改之后再启用作业解决!原创 2022-03-04 15:52:42 · 4494 阅读 · 0 评论 -
sql not like 数据遗漏
在一NULL列,两者LIKE并NOT LIKE反对任何搜索字符串将返回NULL。或者是使用 not exists()原创 2022-10-19 14:05:10 · 1894 阅读 · 0 评论 -
sql语句中判断是否为数字
2)特殊情况下使用PatIndex()函数,例如:只允许包含0到9的数字和小数点,但是,多个小数点也会匹配成功,所以最好配合IsNumeric使用。1)IsNumeric(参数)函数,如果“参数”的计算结果是有效的数字类型,返回1,否则返回0。原创 2022-10-24 15:21:59 · 3479 阅读 · 0 评论 -
sql server两行相减
【代码】sql server两行相减。原创 2022-10-19 09:29:21 · 2107 阅读 · 0 评论 -
sql server行转列(pivot),列转行(unpivot)
可以使用 PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表。 PIVOT 通过将表达式中的一个列的唯一值转换为输出中的多列,来轮替表值表达式。 PIVOT 在需要对最终输出所需的所有剩余列值执行聚合时运行聚合。 与 PIVOT 执行的操作相反,UNPIVOT 将表值表达式的列轮换为列值。PIVOT 提供的语法比一系列复杂的 SELECT…CASE 语句中所指定的语法更简单和更具可读性。PIVOT (行转列)原表pivot 后列转行(unpivot)原表unpivot 后.原创 2022-06-09 03:24:39 · 4012 阅读 · 0 评论 -
sql 大小写转换(upper,lower)
将字符串全部转换成大写输出lower将字符串全部转换成小写输出首字母大写,其他小写left(‘abCdsE’,1):截取左边第1位字符串。len(‘abCdsE’):获取字符串长度。SUBSTRING(‘abCdsE’,2,len(‘abCdsE’)):截取从第2位到最后一位字符串。输出...原创 2022-06-09 01:37:31 · 4012 阅读 · 0 评论 -
sql 删除表中重复记录
sql删除重复数据输出说明a. 从表p1取出记录;b. 拿着第1条记录去表p2查找满足WHERE的记录,代入该条件p1.age=p2.age and p1.id>p2.id后,发现没有满足的,所以不用删掉记录1;c. 记录2同理;d. 拿着第3条记录去表p2查找满足WHERE的记录,发现有一条记录满足,所以要从p1删掉记录3;e. 3条记录遍历完,删掉了1条记录,这个DELETE也就结束了。...原创 2022-06-09 01:14:39 · 675 阅读 · 0 评论 -
sql 让库存根据字段数量进行扣除
建立测试表、添加数据create table #check_wl(ids int,name varchar(200),sex int,stocks int,nums int)insert into #check_wl values(1,'001',1,1000,100)insert into #check_wl values(2,'001',2,1000,200)insert into #check_wl values(3,'002',1,1000,300)insert into #原创 2022-04-19 17:02:24 · 842 阅读 · 0 评论 -
SQL中字符串截取函数
1、left(name,4)截取左边的4个字符列:SELECT LEFT(201809,4) 年结果:20182、right(name,2)截取右边的2个字符SELECT RIGHT(201809,2) 月份结果:093、SUBSTRING(name,5,3) 截取name这个字段 从第五个字符开始 只截取之后的3个字符SELECT SUBSTRING(‘成都融资事业部’,5,3)结果:事业部4、SUBSTRING(name,3) 截取name这个字段 从第三个字符开始,之后的所有个字符转载 2022-04-16 16:26:56 · 6018 阅读 · 0 评论 -
SQL条件判断语句(case when zhen ,isnull)
case when then语法:case when 条件 then 值else 值 end说明:case函数只返回第一个符合条件的值示例:create table #check_wl(id int,name varchar(200),sex int)insert into #check_wl values(1,'张三',1)insert into #check_wl values(2,'李四',1)insert into #check_wl values(3,'王五',2)原创 2022-04-16 16:16:45 · 1057 阅读 · 0 评论 -
sql 定时作业
打开sql server 代理右键新建作业填写作业名称点击步骤,新建步骤步骤名称,填写要执行的sql语句,或者存储过程,然后确定点击计划,新建填写计划确定,确定,完成!右键查看作业状态...原创 2022-03-03 17:33:51 · 348 阅读 · 0 评论 -
sql SET NOCOUNT ON(不显示受影响行数)
说明:不显示结果集中返回显示受T-SQL语句或则usp影响的行计数信息。可用来提高程序性能。ON:不显示计数,但也更新全局变量@@RowCountOFF:显示计数;正常情况下消息输出SELECT * FROM ICStockBill where FTranType=10(7 行受影响)完成时间: 2022-03-03T15:37:59.1180227+08:00SET NOCOUNT ONSET NOCOUNT ON;SELECT * FROM ICStockBill whe原创 2022-03-03 15:43:40 · 1129 阅读 · 0 评论 -
sql 事务 Transaction(含常用全局变量)
说明将若干条 SQL 语句“打包”在一起,共同执行一个完整的任务,就是事务。事务由一条或者多条 SQL 语句构成。事务有一个最显著的特征,就是它包含的所有 SQL 语句作为一个整体向数据库提交,只有所有的 SQL 语句都执行完成,整个事务才算成功,一旦某个 SQL 语句执行失败,整个事务就失败了。事务失败后需要回滚所有的 SQL 语句。事务中的所有 SQL 语句是一个整体,要么全部执行成功,要么全部执行失败。属性原子性一个事务中的所有 SQL 语句,要么全部执行成功,要么全部执行失败,不会结束原创 2022-03-02 11:00:28 · 682 阅读 · 0 评论 -
sql 父id生成子id row_number()
说明语法格式:row_number() over(partition by 分组列 order by 排序列 desc)分组列和排序列都可以多个字段组合可用于父表生成子表id示例建立测试数据create table #TEST_NUMBER_OVER( id varchar(10) not null, entityid varchar(10) null, vlue varchar(20) null)insert into #TEST_NUMBER原创 2022-02-28 12:16:35 · 523 阅读 · 0 评论 -
sql 游标循环(cursor)
说明游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标区都有一个名字,用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。游标是处理结果集的一种机制吧,它可以定位到结果集中的某一行,多数据进行读写,也可以移动游标定位到你所需要的行中进行操作数据。一般复杂的存储过程,都会有游标的出现,他的用处主要有: 定位到结果集中的某一行。对当前位置的数据进行读写。可以对结果集中的数据单独操作,而不是整行执行相同的操作。是面向集合的数据库管理系原创 2022-02-24 08:54:29 · 4031 阅读 · 0 评论 -
sql 判断是否有记录(exists)
说明EXISTS 运算符用于判断查询子句是否有记录,如果有一条或多条记录存在返回 True,否则返回 False。EXISTS 可以与 NOT 一同使用。示例判断系统中是否存在sal_order_test表if exists(select * from sal_order_test)beginprint '存在'endelse print '不存在'输出:存在完成时间: 2022-02-22T16:13:01.6429757+08:00...原创 2022-02-22 16:21:55 · 4953 阅读 · 0 评论 -
sql 触发器(Insert,update,delete)
说明当对一个表进行insert操作时就会激活它执行。示例drop trigger [dbo].[Trigger_Insert_Test]--不能插入临时表CREATE TABLE sal_order_test (FID INT IDENTITY (1,1), FBILLNO VARCHAR(20) NOT NULL DEFAULT(''), FDATE VARCHAR(20) NOT NULL DEFAULT('') )CREATE TABLE sal_order_原创 2022-02-21 16:05:19 · 6870 阅读 · 0 评论 -
sql 去重 distinct
说明distinct语句中select显示的字段只能是distinct指定的字段。CREATE TABLE #TempBill (FID INT IDENTITY (1,1), FKFDate VARCHAR(20) NOT NULL DEFAULT('') )insert #TempBillselect getdate()select FKFDate from #TempBillselect distinct FKFDate from #TempBill去重前原创 2022-02-21 13:54:09 · 2049 阅读 · 0 评论 -
sql 类型转换(convert,cast)
convert()convert(要转换的类型,要转换的值)示例:select ‘orderid:’+CONVERT(varchar,2222222)结果:orderid:2222222日期转文本(改变样式):convert(varchar,日期,日期样式编码)示例:select GETDATE() 前,‘date:’+CONVERT(varchar,GETDATE(),106) 后结果:前 后2022-02-18 11:38:52.970 date:18 02原创 2022-02-18 11:43:43 · 1872 阅读 · 0 评论 -
sql 验证表object_id()
说明数据库中有一个系统表sysobjects,里面存储了数据库各个对象的信息。这个表存储了表,存储过程,触发器,视图等相关信息。该函数会返回指定对象的ID值,可以在sysobjects表中进行验证。语法object_id(‘objectname’)或者object(‘objectname’,‘type’)实例if OBJECT_ID( '[dbo].[CMK_BD_ComBrand]') IS NOT NULLprint '该表存在'else print '该表bu存在'...原创 2022-02-17 11:38:10 · 497 阅读 · 0 评论 -
sql 抛出异常raiserror()
说明用于抛出一个异常或错误。这个错误可以被程序捕捉到。实例declare @error_mes varchar(1000)set @error_mes='1314520886的ERP_ICStockBillEntry中间表数据的收料仓库编码不存在于系统中'raiserror(@error_mes,13,1,'张三')输出...原创 2022-02-17 11:23:40 · 1032 阅读 · 0 评论 -
SQL HAVING筛选分组后的数据
说明在 SQL 中WHERE 关键字无法与聚合函数一起使用。HAVING 可以让我们筛选分组后的各组数据。语法SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_nameHAVING aggregate_function(column_name) operator value;实例select fid,SUM(fq原创 2022-02-17 11:01:02 · 1602 阅读 · 0 评论 -
sql 将查询结果插入已存在表
insert into #check_wlselect t1.FItemID PId,t2.FItemID,t2.FQty from ICBOM t1 left join ICBOMCHILD t2 on t1.FInterID =t2.FInterID where and FUseStatus=1072 and t2.FItemID>0union allselect t1.FItemID PId,t2.FItemID ,t2.FQty from ICBOM t1 left joi原创 2022-01-15 17:22:38 · 1305 阅读 · 0 评论 -
sql 创建表
create table #check_wl(MaxWL int,PId int,FItemID int,FQty int)create table 表名(字段名 字段类型,字段名 字段类型)原创 2022-01-15 16:57:29 · 264 阅读 · 0 评论 -
sql while循环
declare @count int=1while @count<=(select count(fwl) from #wlsNew)beginprint('hello word!')set @count=@count+1endwhile 条件begin执行的操作set @count=@count+1end原创 2022-01-15 16:55:14 · 782 阅读 · 0 评论 -
sql 递归,父子类查询
withtempas(select *from tableawhere ID =666union allselect b.*from tempinner join tablea b on b.ID=temp.ID)select *from temp原创 2022-01-13 14:59:57 · 1609 阅读 · 0 评论 -
sql server stuff()多行合并成一行
在SQL Server中,STUFF()函数常与结合使用,以实现将多行数据合并成一行字符串的功能。这种技巧在处理需要将查询结果集中的多行数据拼接成单个字符串(如逗号分隔的列表)时非常有用。原创 2021-12-30 20:22:10 · 1643 阅读 · 0 评论 -
sql 多表查询
select * from #StockTable001 union all select * from #StockTable002原创 2021-12-30 11:41:44 · 471 阅读 · 0 评论 -
SQL 添加天数
语句:select fdate,dateadd(day,1,fdate)From T_SAL_ORder where fdate=DATEADD(day,1,'2018-01-05')结果:fdate (无列名)2018-01-06 2018-01-07原创 2021-12-30 03:08:19 · 1111 阅读 · 0 评论