分类 SQL Server 下的文章
- 首页
- SQL Server
SQL Server:存储过程在SSMS中执行很快,通过C#程序调用执行很慢
问题描述发现一个问题挺奇怪,用户反馈有个报表查询一年的数据查询很慢,要 1 分钟左右,让我优化下,于是在 ssms 中执行了下报表所调用的存储过程,发现只用4秒就查询完成,并且只有1996行记录。于是我再打开程序试下发现确实卡住了很慢,要1分钟才出来结果。一句话说明问题:存储过程在SSMS中执行很快,通过C#程序调用执行很慢。原因分析参考:https://blog.csdn.net/weix...
SQL Server:删除没有ID主键的重复记录
SQL Server 删除完全相同的重复记录,只保留一行记录,并且这些记录没有 id 主键,网上大多教程都是在有 id 主键的情况下删除的,此文方法适用于删除没有id主键的重复记录。删除重复数据SQL语句测试数据codename010102020101with t1 as(select *,row_number() over (partition by name,code order by ...
SQL Server 高版本数据库还原到低版本的方法
高版本的 MSSQL 数据库备份文件 .bak 还原到低版本数据库是会报错的,无法执行。如 SQL 2016 的数据库还原到 SQL 2012 是不可以直接还原或附加的。解决方案如果需要将高版本的 MSSQL 数据库还原到低版本的服务器上需要通过生成脚本的方式实现。1、在高版本的数据库上右键-任务—生成脚本,选择要导出的全部表、存储过程。2、重点:点击高级选项,选择目标数据库版本和编写脚本数...
SQL Server 2019 安装语言扩展调用 Java 代码
1、什么是 SQL Server 语言扩展语言扩展是 SQL Server 的一项功能,用于执行外部代码。 可以使用扩展性框架在外部代码中使用关系数据。SQL Server 2019 支持 Java。 默认的 Java 运行时为 Zulu Open JRE。 此外,也可以使用其他 Java JRE 或 SDK。2、使用 SQL Server 语言扩展可执行的操作语言扩展使用扩展性框架来执行外...
SQL Server 2019 正式发布,附下载地址
2019年11月4日,微软在美国奥兰多举办的Ignite大会上发布了关系型数据库新版本 SQL Server 2019。与之前版本相比,新版本的SQL Server 2019 具备以下重要功能:在Linux和容器中运行的能力,连接大数据存储系统的PolyBase技术。SQL 2019 下载地址版本:SQL Server 2019 Enterprise (x64) - DVD (Chinese...
SQL Server 分批删除大量数据
当删除一个数据量在千万及以上的大表中的部分数据时,使用 delete from 表名 where 条件;删除记录时执行的时间会比较长,日志文件急速增长,通过以下分批删除的方式可以稍微好一点。--分批删除大量数据 declare @count int set @count=100000 --每批删除的记录数 print convert(varchar(50),getdate(),120) w...
SQL Server 语句中 output 参数的使用
返回插入的数据: output inserted.列insert into T_Test(Province,City) output inserted.Province, inserted.City values('广东','深圳')返回删除的数据: output deleted.列delete from T_Test output deleted.* where id = 2 (返回删除数...
SQL Server 2012 使用 offset fetch 实现分页查询
sql server 2012 新增 order by 子句的 offset fetch 语法,可以实现分页,简单测试了一下,我的结论是语法写起来比 row_number 要简洁,但效率上不像网上其它人的文章所说的要好一丢丢,我测试的是差一丢丢,并且越往后面的页数取数效率越差,可能我测试的场景不全面。但我选择放弃了。还是用 row_number。语法ORDER BY order_by_exp...
SQL Server 存储过程通过多个 ID 更新数据、给存储过程传多个ID
业务场景客户端提交用逗号分隔多个业务单据ID的字符串到数据库,期待修改这些单据的某些字段信息。解决方案数据库中建立表值函数用于将逗号分隔的字符串转为多行的表,然后通过where id in(select id from #table)的方式更新
SQL Server:将截断字符串或二进制数据,哪个字段?
将截断字符串或二进制数据这个问题已经困扰我好多年了,一直没有很好的方法能快速定位到底是哪个字段,只能凭经验分析表结构和插入的数据来排查。终于,SQL Server 2019 可以返回详细的错误信息了。点此链接:https://docs.microsoft.com/zh-cn/sql/t-sql/statements/alter-database-scoped-configuration-tr...
SQL Server:修改表增加字段时 SSMS 的处理逻辑
增加字段是非常普遍的业务需求,我更喜欢将字段插入到合适的位置而不是追加在表字段最后面。在 SSMS 中通过可视化窗口插入字段后保存,SSMS 是以下面的逻辑去完成我们的操作的。原表删除约束创建临时表:Tmp_原表名,包含新加的字段并且是按我们期望的顺序将原表数据全部写入新临时表删除原表执行存储过程EXECUTE sp_rename将临时表改名为原表名为新的表建主键、索引、存储过程注:通过自动...
SQL Server:利用 stuff 函数和 for xml path 将多行拼接字符串
有时我们需要在SQL中将多行数据拼接到一起形成一个字符串,可能会以逗号等字符分隔,等等。实例代码以下 SQL 语句将仓库登录表中的仓库代码和仓库名称通过逗号拼接,并使用|将多行的记录连接在一起,最终形成一个字符串。select aa=stuff(( select top 5 '|'+ckcode+','+rtrim(ckmc) from sys_ckdjb for xml path('')...
SSMS 2017 无法启动:Cannot find one or more components
SSMS 2017 无法启动打不开,报错信息如下:Microsoft Visual Studio 2015 Shell (Isolated)Cannot find one or more components. Please reinstall the application.解决方案修复Microsoft Visual Studio 2015 Shell后尝试若还不行则删除以下注册表目录H...