SQL server
文章平均质量分 72
Deng_7788
努力把复杂的语句简单化
展开
-
自增序列作为主键时出现违反约束条件问题
这一类的问题主要是插入数据时系统会给一个自增的序列号,但是这个自增的序列号已经存在表中,比如写入的时候数据库给的id值是10,但是表中已经有10这个id了,这个时候就会出现违反约束条件问题插入已存在的id,导致插入数据失败,可以查询当前插入的序列号确认是不是这类问题。有时候会出现插入第一次失败多执行几次就成功,大多数也是这个问题引起的。解决方法如下。1、查看当前插入的序列号SELECT IDENT_CURRENT('TABLE_NAME');2、查看表中最大的id值为多少SELECT MAX(id原创 2020-08-25 12:02:19 · 933 阅读 · 0 评论 -
SQL server存储模糊查询
SQL存储模糊查询查询执行命令原创 2020-08-24 17:39:01 · 230 阅读 · 0 评论 -
SQL server日期转换
SELECT DATEADD(mm, DATEDIFF(m, 0, getdate()), 0) '当月第一天' ,DATEADD(mm, DATEDIFF(m, 0, getdate())+1, 0) '下月第一天' ,DATEADD(ms, -2, DATEADD(mm, DATEDIFF(m, 0, getdate()) + 1, 0)) '当月最后时间点' ...原创 2019-11-14 19:35:58 · 238 阅读 · 0 评论 -
SQL server利用CTE删除重复数据且保留一条
想要根据表中的某一个字段或者是其他几个字段删除重复的数据并且保留一条,可以用CTE+row_number的方式做删除例子:--创建临时表CREATE TABLE #tt ( id INT IDENTITY(1, 1) ,aa NVARCHAR(5) ); --插入数据 INSERT INTO #tt ( aa )VALUES ...原创 2019-11-14 19:22:56 · 374 阅读 · 0 评论 -
解决触发器批量插入时只有第条一数据生效问题
如果是批量插入数据则要声明一个表来拿到这批插入的数据。如果只是声明一个变量值,则只能拿到第一条数据,所以这就会导致批量数据插入时触发器无效的原因。实际例子:--创建表CREATE TABLE test_1 ( FID INT ,TYPEID VARCHAR(36) ); -- 添加一个插入数据后触发的触发器 CREATE TRIGGER TG_test...原创 2019-11-14 19:03:36 · 2016 阅读 · 0 评论 -
SQL Server按5分钟分组统计数据
–先把时间分组然后标号– 分组划分:(小时*60+分钟)/ 分钟值SELECT ( DATEPART(hh,GETDATE()) * 60 + datepart(mi,GETDATE()) ) /5例子:把时间分组放到临时表--创建临时表获取分组区域CREATE table #tab(start_time DATETIME,end_time DATETIME,num INT...原创 2019-11-14 18:35:52 · 1649 阅读 · 0 评论