
Sqlserver
陈熙之
又要写代码 又要管数据库 又要管服务器 最后都是半残
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Cannot resolve the collation conflict between “SQL_Latin1_General_CP1_CI_AS“ and “Chinese_PRC_CI_AS“
程序抛出来的异常,是一个跨库关联查询;之前初始化了一个扩展数据库,不晓得为什么排序规则和其他库不一致,导致的。创建数据库都是默认的,不晓得为什么默认会是SQL_Latin1_General_CP1_CI_AS。用命令执行 ,实际没有用,其他表已经有数据了,会影响字符类型的字段又不敢重启服务,还好这是个刚初始化的库,删了,重新建,发现排序规则还是SQL_Latin1_General_CP1_CI_AS;再次执行了命令。再初始化数据,连表数据正常了。...原创 2022-07-11 14:10:27 · 1859 阅读 · 0 评论 -
sqlserver float 转 字符 小数丢失
对sqlserver数据库,导入的一组有坐标的execl,经纬度是分开的,数据库是合在一起的。原始数据6位小数按照这个写法感觉是没问题的convert(varchar(50),[经度])+','+convert(varchar(50),[纬度])结果出来却成这样了convert(varchar(50),convert(decimal(18,6),[经度]))+','+convert(varchar(50),convert(decimal(18,6),[纬度]))最原创 2022-02-21 14:33:19 · 1268 阅读 · 0 评论 -
C#的事务
using (var db = new BaseContext()) { db.Configuration.ValidateOnSaveEnabled = false; using (var ts = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = Iso原创 2021-06-29 10:40:03 · 1315 阅读 · 0 评论 -
sqlserver 的 FORMAT 格式化
FORMAT是Sqlserver 2012开始出现的函数。最开始一直使用就是时间格式化。如下:Select FORMAT(getdate(),'yyyy-MM-dd') --2020-09-10今天有个问题是数字前补0,记得原来的写法要调用好多次函数才行,又懒得写,突然想到这个,来试了下。Select FORMAT(1,'000000') --000001果然靠谱。。顺带写个函数,以后可以继续用Create FUNCTION [dbo].[数字前格式...原创 2020-09-10 16:00:20 · 8795 阅读 · 3 评论 -
客户服务器CPU100% 无奈的改表名
快下班了,客服的一个小朋友,跑来找我救命,说现在服务卡爆了,CPU一直100%打开页面一个复杂查询的地方,一直loadding......等了27秒,正常一般1秒左右,看了下活动监视器,等待类型基本是Latch和Lock,以为是有死锁了,查看阻塞,一直在变化,没有固定的阻塞,那就不是死锁了.想着之前遇到过的一个情况,有大量的sql在反复执行,也是这种症状,查看了下缓存计划,按照CPU和执行次数倒序查看。果然最前面几个一直在疯狂执行,F5一下,就多了10多次查询,当时已经2K多次,找到相关语句和表,然原创 2020-08-25 18:56:16 · 193 阅读 · 0 评论 -
SqlServer 2016 新特性之Temporal Table(历史表)
先创建一个吧,sql出来的语法一大堆-- =========================================-- 创建系统版本的临时表模板-- Create system-versioned temporal table template-- 使用“为模板参数指定值”命令(Ctrl-Shift-M)填写下面的参数值。-- Use the Specify Values for Template Parameters command (Ctrl-Shift-M) to...原创 2020-06-10 14:31:15 · 839 阅读 · 0 评论 -
SQL根据身份证判断性别
先百度下:通过身份证的第17位也就是倒数第二位的数字可以辨别该身份证所属人的性别,奇数为男性,偶数为女性。SQLServerSelect IIF(SUBSTRING('000000000000000010',17,1)%2=1,'男','女'),IIF(SUBSTRING('000000000000000020',17,1)%2=1,'男','女')SUBSTRING截取第17位 、 %取余 、 IIF判断Mysql:Select IF(mod(MID('000000..原创 2020-06-05 17:05:27 · 11697 阅读 · 0 评论 -
Sqlserver 又遇视图带*号
今天页面上加了一个查询,然后测试的时候,一点就报错了。不就一张表嘛,朗格会报错?结果一步步看了代码,原来的查询已经被注释了,新的查询是返回了一个视图。我以为是写好了固定的返回字段,加一个字段就好了,然后看到视图的时候,感觉人都不好了,曾经给同事们说过视图不能加*,要坑人的,正准备找谁干的,结果想起这个项目是刚接手别人的,哎。。。一股蛋蛋的忧伤。。。这玩意【a.*】,对就是这玩意。当视图引用的表对象修改后,视图的元数据可能就过时了,如:在视图定义中引用的列的宽度,在刷新元数据前的宽度.原创 2020-06-05 16:37:37 · 586 阅读 · 0 评论 -
Sqlserver 之 SequenceNumber(序列)
SequenceNumber是SQL Server2012推出的一个新特性。直接看用法吧 ↓SequenceNumber的用法:CREATE SEQUENCE [schema_name . ] sequence_name [ AS [ built_in_integer_type | user-defined_integer_type ] ] [ START WITH <constant> ] [ INCREMENT BY <constant>...原创 2020-06-04 10:05:17 · 3595 阅读 · 0 评论 -
int转varchar层级排序
今天X领导不知道哪根筋不对,跑去把组织架构的排序改了一圈,几十条数据,闲得蛋疼。。。排序规则如下顶级11的下级11 12 13 14 1511的下级111 112 113 114........让把可输入下拉顺序全部改了,然后一句解决了,平时积累还是很重要的。Select * from Department where IsDelete = 0 order by Convert(varchar(10), OrderNum) asc...原创 2020-05-18 10:23:13 · 136 阅读 · 0 评论 -
Sqlserver 利用IIF排序
目前有这样一组数据:先按照Level排序,再按照DID排序,但是Level是1-2的又要放一起,且2在同DID前面。order by IIF(Level>2,Level,1) desc,DID desc,Level desc先把Level大于2数据的判断为1,使其第一次按照这个假设的条件排序,那么就会按照Level 100,5,4,3排序,之后的1,2则有点乱了,那么我们再按...原创 2019-12-12 15:41:23 · 763 阅读 · 1 评论 -
因为数据库正在使用,所以无法获得对数据库的独占访问权。
今天还原数据库又出这个消息了,顺手记录下。1、kill掉进程select 'kill '+Convert(varchar(50),spid)+';' from sys.sysprocesses where db_name(dbid)='DataBaseName' and spid>50 for xml path('')复制出来执行下就可以还原了。2、单用户模式...原创 2019-06-20 09:21:24 · 887 阅读 · 0 评论 -
今天遇到的MSSQL扩展属性的坑(sys.extended_properties)
今天布置好了一个站,一个用了N多年的站,然后测试随便点了几下,说有个地方报错了。ERR:已添加了具有相同键的项我草,这么多年的代码居然还有坑,哪些客户难道都没用过这个功能么?打开代码,原来是EF查询后组装了一个字典Dictionary,K/V值重复了,还是不信,这么多年的代码居然有坑?然后发现这个代码很久很久之前老大写的工作流的配置,好吧,甩不了锅。。。别逗了,人家早不写代码很多年...原创 2019-01-23 16:05:50 · 4263 阅读 · 1 评论 -
LinkServer
之前一直都只玩过SQLServer之间是LinkServer,今天才搞了下连MySQL。网上看了些文章,找了些差别SQLServer:exec sp_addlinkedserver 'mssql_link','','SQLOLEDB','192.168.1.119' exec sp_addlinkedsrvlogin 'mssql_lnk','false',null,'sa','9090...原创 2018-09-21 11:34:47 · 3321 阅读 · 0 评论 -
输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符。
消息 6522,级别 16,状态 2,第 2 行在执行用户定义例程或聚合“AESDecrypt”期间出现 .NET Framework 错误: System.FormatException: 输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符。System.FormatException: 在 System....原创 2018-08-09 09:23:11 · 20391 阅读 · 0 评论