SQL Server
疯流人物
我是一个爱代码疯狂,为软件消得人憔悴的疯流人物
展开
-
某个表有近千万数据,CRUD比较慢,如何优化
数据库业务层面的拆分,和服务的“治理”,“降级”机制类似,也能对不同业务的数据分别的进行管理,维护,监控,扩展等。来自淘宝综合业务平台团队,它利用对2的倍数取余具有向前兼容的特性(如对4取余得1的数对2取余也是1)来分配数据,避免了行级别的数据迁移,但是依然需要进行表级别的迁移,同时对扩容规模和分表数量都有限制。按照时间切分,就是将6个月前,甚至一年前的数据切出去放到另外的一张表,因为随着时间流逝,这些表的数据 被查询的概率变小,所以没必要和“热数据”放在一起,这个也是“冷热数据分离”。转载 2023-02-14 13:57:02 · 625 阅读 · 0 评论 -
存储过程中使用事务范例
【代码】存储过程中使用事务范例。原创 2022-09-29 16:24:48 · 77 阅读 · 0 评论 -
SQL Server数据库的存储过程中定义临时表有必要显示删除吗
把上述脚本记录到的数据,利用Excel的透视图功能,呈现出来上述脚本记录到的user objects数量,可以很清楚地发现,不显式删除临时表,与显式删除临时表相比,UserObjecs数量并没有明显的差异。你删,或者不删,他都会缓存在临时库中,并不因为显式Drop临时表,临时表就会被真正的删除,这是SQL Server专门为此做的优化,你真的不用为删除临时表而操心或者纠结。同时测试了临时表在满足重用的情况下,临时表显式删除与否的性能问题,对于存储过程中定义的临时表,不管是否能否缓存重用,都不建议显式删除。原创 2022-09-09 09:59:49 · 2032 阅读 · 1 评论 -
SQL Server 使用CONVERT()函数实现日期类型转换成字符串类型的日期格式详解
(3)style 规定日期/时间的输出格式。下面表格可以使用的 style 值。(1)data_type(length) 规定目标数据类型(带有可选的长度)。说明:把日期转换为新数据类型的通用函数,可以用不同的格式显示日期/时间数据。(2)data_to_be_converted 含有需要转换的值。转载 2022-09-08 14:47:47 · 4646 阅读 · 0 评论 -
EXECUTE 后的事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配。上一计数 = 0,当前计数 = 1
报这个错误:EXECUTE 后的事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配。上一计数 = 0,当前计数 = 1。一般指事务中有语句错误。原创 2022-09-03 17:22:22 · 190 阅读 · 0 评论 -
SQLServer常用SQL语句
SQLServer常用SQL语句1、求某一表的字段名称,类型、长度:2、N到M条记录(要有主索引ID):3、查询用户创建的所有数据库4、查看当前数据库中所有存储过程原创 2022-08-06 11:25:18 · 1739 阅读 · 0 评论 -
Navicat常用快捷键
在使用操作数据库时,推荐navicat工具。记住一些常用快捷键,可大大提高工作效率,以下是简单总结的几个常用快捷键。原创 2022-06-09 17:03:00 · 19250 阅读 · 0 评论 -
sqlserver 各种判断是否存在(表、视图、函数、存储过程等)
sqlserver 各种判断是否存在(表、视图、函数、存储过程等)原创 2022-06-09 09:40:39 · 7699 阅读 · 0 评论 -
SQL Server 2008R2 数据库出现“可疑”导致无法访问解决办法
今天在客户服务器的数据库里面的一个数据库突然出现了点问题,数据库状态变为可疑了,这个问题之前有见过,虽然解决了,但并没有把过程和解决方法记录下来,决定这次记录在博客园里,方便自己也方便他人在遇到这个问题的时候,能快速解决!废话不多说,先说说数据库变可疑的原因:在进行些不正常操作如数据库在读写时而无故停止数据库,从而导致Sql Server 数据库不正常中断,当再次打开数据库时会发现某些数据库会被标记为“可疑”(suspect),即在数据库名旁加上了黄色的惊叹号,这时数据库就不能再被打开了,但数据库的结构转载 2021-09-14 14:49:14 · 1860 阅读 · 0 评论 -
Delphi调用SQL分页存储过程实例
下面是一个支持任意表的 SQL SERVER2000分页存储过程 1 下面是一个支持任意表的 SQL SERVER2000分页存储过程 2 //-----下面是一个支持任意表的 SQL SERVER2000分页存储过程 3 4 //----分页存储过程开始创建----------------------------------------------------------------------------------------------------------- 5 IF E.转载 2021-07-03 17:31:48 · 294 阅读 · 0 评论 -
SQL-SERVER的STUFF函数group by 分组,字符串合并
SQL SERVER 分组group by之后,字符串合并在一起,逗号隔开。原本数据:效果:代码:-use DB01;-- 建表create table dbo.tb_user_product(id int null,name varchar(10) null,product varchar(100) null ,amount decimal(9,2) null); -- 插入数据insert into dbo.tb_user_product values ('转载 2021-04-25 17:16:13 · 3811 阅读 · 0 评论 -
sqlserver2008增加、修改表字段不能保存,提示“阻止保存要求重新创建表的更改”的解决办法
sqlserver2008增加、修改表字段不能保存,提示“阻止保存要求重新创建表的更改”,如下图所示解决办法:原创 2021-02-25 10:02:56 · 496 阅读 · 0 评论 -
Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍
先来定义分页语句将要用到的几个参数:int currentPage ; //当前页int pageRecord ; //每页显示记录数以之前的ADDRESSBOOK数据表为例(每页显示10条记录):一、SqlServer下载 分页语句String sql = "select top "+pageRecord +" * from addressbook where id not in (select top "+(currentPage-)*pageRecord +" id from t_原创 2021-01-19 17:37:21 · 255 阅读 · 0 评论 -
SQL Server知识点滴札记
1、从日期时间提取日期、时间提取日期:convert(varchar(10),a.RegisterDate,120)提取时间:convert(varchar(8),a.RegisterDate,108)原创 2020-12-18 19:48:27 · 918 阅读 · 1 评论 -
sql server 函数--rand() 生成整数的随机数
rand() 定义: 返回从0到1之间的随机浮点值。举例说明:select rand()as随机数 结果如图:select cast(floor(rand()*N)as int) --方法1结果:20select cast( ceiling(rand()*N) as int ) --方法2结果:43大致一看,这两种方法没什么区别,区别就是他们的生成随机数的范围:方法1的数字范围:0至N-1之间,如cast( floor(rand()*100) as int...转载 2020-12-17 10:10:02 · 1618 阅读 · 0 评论 -
ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)
语法格式:row_number() over(partition by 分组列 order by排序列 desc)row_number() over()分组排序功能:在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where 、group by、 order by 的执行。例一:表数据:create table TEST_ROW_NUMBER_OVER( id varchar(10) not null, ..转载 2020-12-16 18:13:16 · 142 阅读 · 0 评论 -
SQL常见问题总结
4、数值类型的字段值为NULL时不能进行计算,可以通过ISNULL(字段,0)解决。1、类型 varchar 发生算术溢出错误,值 = 2162400.000000。3、提示某字段无效是一般是字段的归属表指定不明确,如果提示表无效一般是表不存。2、从数据类型varchar转换为numeric时出错。可能原因:转换类型长度不够。可能原因:字段有为空的值。...原创 2020-11-10 18:53:45 · 1855 阅读 · 0 评论 -
SQL Server 数值四舍五入,小数点后保留2位
1.round() 函数是四舍五入用,第一个参数是我们要被操作的数据,第二个参数是设置我们四舍五入之后小数点后显示几位。2.numeric 函数的2个参数,第一个表示数据长度,第二个参数表示小数点后位数。例如: select cast(round(12.5,2) as numeric(5,2)) 结果:12.50 select cast(round(12.555,2) as numeric(5,2)) 结果:12.56 select cast(rou...转载 2020-10-23 16:03:03 · 2513 阅读 · 0 评论 -
把ID相同的记录数据进行整合的算法
declare test_cursor1 SCROLL cursor forselect CustomerID,projectname,convert(numeric(10,2),sum(ActionBalanceTime)) ActionBalanceTime from( Select 1 as type,a.CustomerID, b.projectname, sum(quantity-isnull(UseQuantity,0)) as ActionBalanceTime from b.原创 2020-10-13 09:52:41 · 352 阅读 · 0 评论 -
SQL SERVER (MSSQL) 排它锁的创建自增ID实例
需求:根据某个字段的标记,来判断要拿到的记录sn,再更新此条记录的标记,防止被别的记录拿到要解决的问题:总有那一个瞬间,2个线程同时拿到同一条记录解决方法:使用排它锁,下面为实例,好用请给好评。何谓排它锁请自行百度。关键语法是:with(tablockx)原理:从使用with(tablockx)开始就独占了,知道commit tran才释放锁下面是实例:ALTER PROCEDURE [dbo].[GetNewID]@tablename varchar(50..原创 2020-09-11 10:52:53 · 381 阅读 · 0 评论 -
SQL Server函数
1、SQL Server从左边填充字符串函数,lpad使用给定的字符,左填充字符串至指定长度。Oracle中有该函数,但是SQL Server中没有/*使用指定的字符从左边填充字符串至指定长度**如果字符串长度大于指定长度,返回字符串左边的子串,长度为指定长度*/create function [dbo].[lpad](@s nvarchar(255),@length int,@char char(1))returns nvarchar(255)asbegindeclar原创 2020-09-11 09:23:01 · 620 阅读 · 0 评论 -
sql分析经验总结
对原来sql进行分块查询分析,然后再按照原sql进行组合原创 2020-07-09 14:28:20 · 291 阅读 · 0 评论 -
跨库查询、遍历数据库的范例
EXEC sp_MSforeachdb @command1='IF ''?'' NOT IN(''master'', ''model'', ''msdb'', ''tempdb'',"ReportServer","ReportServerTempDB","OA系统") select min(issueDate) as MinDate,Max(issueDate) as MaxDate,DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate from ?.db.原创 2020-07-07 10:28:12 · 153 阅读 · 0 评论 -
sql杂记
1、convert、datepart函数运用select ID,Ftype, Convert(varchar(10),datepart(mm,BirthDate))+'月'+Convert(varchar(10),datepart(dd,BirthDate))+'日' as 生日 from bd_Customers where Ftype='新历' and BirthDate is not null and convert(datetime,'2012-'+convert(varchar(10),d..原创 2020-06-04 11:27:20 · 185 阅读 · 0 评论 -
解决sql server除法结果为0的问题
将被除数乘以1.0再去除例如:select CustomerID,shop,shopquyu,会员编号,会员姓名,会员号码,专属技师,会员总余额,会员到店次数,(select case when (select SUM(会员到店次数) from #TTCustomers) <> 0 then cast(((会员到店次数*1.0)/(select SUM(会员到店次数) from #TTCustomers)) as decimal(3, 2)) else 0 end) as 到店率,消费次数.原创 2020-05-28 10:57:55 · 2289 阅读 · 0 评论 -
sql server常用快捷键
1、向上插入一行(Ctrl + Enter)2、向下插入一行(Ctrl + Shift + Enter)3、删除一行(Ctrl + Shift + L)4、跳到对应括号(Ctrl + ])原创 2020-04-15 09:31:41 · 1302 阅读 · 0 评论