Sql Server GUID会重复? 10C

项目目前在测试阶段,偶尔间发现有重复的GUID,如图所示。可以肯定的是,CRMId字段不会手动插入数据库。而且,数据量才几条,为什么会有重复的?
图片说明

0

7个回答

没有遇到这个问题,非常怀疑是你插入的代码逻辑有问题,或者有手工修改过。

1

只能说在短时间内大批量导入数据的时候会出现,其内部的hash算法运算就会出现重复数据,大概是(千万级)短时间导入出现过GUID 重复,不过我们还是可以放心使用,在某一范围内是没问题的

0

1、反对说不会重复的答案,因为GUID严格来讲只是重复的概率比较低。2、也反对目前所有说会重复的答案,因为他们无一例外的没有提供靠谱的解决方案,例如自增就一定不会重复?全局唯一怎么保证?简而言之,世界上不存在绝对的事情,GUID在低强度的数据量下产生重复的概率是可以接受的,就像哈系算法的冲撞概率在一定程度下是可以被接受的。你可以参考在你的使用场景中GUID重复的概率是否在可接受范围内,也就是不会明显成为系统的可靠性短板,不会导致无法挽回的灾难性后果。譬如说虽然会导致灾难性后果,但地震海啸和核爆也会,而在你的场景中GUID重复的概率不高于地震海啸和核爆那就没啥问题。其实绝大多数GUID重复的场景都是不当使用造成的,例如短时间大量产生ID,计算机硬件标识被破坏,时间倒流,采用不同算法算出的GUID,自行发明有缺陷的算法等等等等

作者:Ivony
链接:https://www.zhihu.com/question/20890168/answer/58558911
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

0

可以放心使用,在某一范围内是没问题的

0

算法有问题,去看看你的算法部分的代码

0

99.9999%的可能是你的代码逻辑有问题,比如上一个值没有清除等,完全自动生成的基本不可能出现这种问题

0

没遇到过,,,我这里通常是加上自增段 guid段,且guid主键~~

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
SQL 自动生成1000条Guid
DECLARE @total INT; DECLARE @i INT; CREATE TABLE #show ( ID UNIQUEIDENTIFIER NULL ); SET @total=1000; SET @i=1; WHILE(@i<=@total) BEGIN INSERT INTO #show VALUES ( NEWID()) SET @i=@i+1;...
生成36位全局唯一数(GUID、UUID)
1.Java import java.util.UUID; UUID.randomUUID();  2.C# using System; Guid.NewGuid().ToString() 3.SQL Server SELECTcast(NEWID() AS VARCHAR(36)) AS UUID 4.Oracle SELECT sys_gu
学习数据库:已知一个guid就可以查询出这个guid多对应的表
declare l_guid varchar2(64); cursor cu is select distinct c.TABLE_NAME from user_tab_columns c where c.COLUMN_NAME = 'GUID'; begin for cu_rec in cu loop begin execute immediate 'se...
使用Guid.NewGuid()避免文件等名称重复
Guid.NewGuid()    Guid.NewGuid()是唯一码的规则 System.Guid.NewGuid().ToString(format); 例子: string str = System.Guid.NewGuid().ToString("A") + "|" + System.Guid.NewGuid().ToString("B") + "|" + System.G...
SQL SERVER-创建guid为主键的表,并插入数据
 create table GuidTable  (     Id uniqueidentifier,     Name nvarchar(32)  )  select * from GuidTable  insert into GuidTable(Id,Name) values(NEWID(),N'嘿嘿')   //C#代码 using System; using System.Col...
sqlserver 存储过程 使用guid的相关记录
1. 存储的值若为guid 但指定的列格式若为varchar之类的话  传入guid的varchar字符串查询查询不到 2. 需要更改列的格式为uniqueidentifier 存储过程的变量也改为uniqueidentifier 3.判断是否需要添加条件 传入空的guid 但不能为字符串类型 USE [commonSystem] GO /****** Objec
oracle 使用sys_guid()出现同时插入两条相同数据
1.数据库为oralce. url中未双机。 主键使用oracle的sys_guid() 发生相同数据插入两条的问题。 解决方法: 更换主键生成方式,改用序列,问题解决。
SQL学习-快速查出多个GUID来使用
向表中插入数据的时候,每次都写SELECT NEWID()来生成一个GUID太麻烦。如何一次查出多个GUID:        SELECT TOP(10)NEWID()         FROM dbo.userInfo(随便找张表)这样就会产生多个GUID,可以拿去用了。...
SQL GUID和自增列做主键的优缺点
SQL GUID和自增列做主键的优缺点 公司的数据库全部是使用GUID做主键的,很多人习惯使用int做主键。所以呢,这里总结一下,将两种数据类型做主键进行一个比较。 主键自增为什么比随机和自定义快? 1、如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页 2、如果使用非自增主键(如果身份证号或学号等),由于每次插入主键的值近似于随...
Oracle生成不重复字符串 sys_guid()
在oracle8i以后提供了一个生成不重复的数据的一个函数sys_guid()一共32位,生成的依据主要是时间和机器码,具有世界唯一性,类似于java中的UUID(都是世界唯一的)。 其优点就是生成的字符串是唯一的,但其和UUID有同样的弊端:生成的序列过长并且没有规律不方便记忆。 其应用场景:当数据库某字段设置为唯一,则可用次生成(比如主键); 获取方式 select sys_guid()
sqlServer 下创建GUID
sql server2000 下创建guid的主键语法,适用于从oracle转移到sql上使用
SQL Server: 将 16进制 转成字符串及根据GUID产生bigint
--通用的做法 select sys.fn_varbintohexstr(0x02000000DD6BE318DC3B2B260AA9923FE133FB046EA0EEE10000000000000000000000000000000000000000) --适合2014,不适合2005 SELECT '0x'+CONVERT(VARCHAR(MAX),0x02000000DD6BE318DC
C#基础 Guid NewGuid 产生重复概率极小的一串编号
 .NET Framework : 4.7.2        IDE : Visual Studio Community 2019         OS : Windows 10 x64     typesetting : Markdown         blog : blog.csdn.net/yushaopu        gi...
SQL Server索引优化——重复索引
SQL Server索引优化——重复索引 在写完《SQL Server 索引优化——无用索引和索引缺失》系列后,就想着写点关于发现重复索引的内容,刚好在Kimberly的博文中发现了这篇,就偷懒了,直接将其翻译过来。 一直以来,对重复索引都有许多困惑,我想的最多是如何使用sp_helpindex(或者SSMS)展示索引所包含的内容。索引到底包含什么?索引的架构是怎样的?这些通常都不是我们所看到...
SQL中出现重复 数据参照
问题描述:完工检验登记,出现重复数据问题分析:数据重复一般都是视图参照重复了,检查发现是cod7,send_fun_no=’XCBFP’这个条件造成了重复。应该是,之前形成报废通知单是根据总的报废数量形成的,而现在改成了根据明细形成,存在多条明细就会构造多条TD03_check_overtime_detail的数据,从而导致这里参照重复。问题处理:改成outer apply参照取第一条数据:top...
SQLServer使用Checksum结合NewID获得随机数
在此之前,先简单了解一下checksum吧!        总和检验码,校验和。在数据处理和数据通信领域中,用于校验目的的一组数据项的和。这些数据项可以是数字或在计算检验总和过程中看作数字的其它字符串。它通常是以十六进制为数制表示的形式,如:十六进制串: 它通常是以十六进制为数制表示的形式,如: 十六进制串: ? 1 0102030405060708
Guid的生成和数据修整(去除空格和小写字符)
SqlServer实现 SELECT LOWER(LTRIM(RTRIM(REPLACE(NEWID(),'-',''))))NEWID()函数产生随机数,例如:F874153F-D99B-40A9-826B-D51948A33E22 REPLACE(NEWID(),'-','')去除横线 LOWER()字母小写 C#代码实现 string guid = System.Guid.New
sql server排序后分页的出现一条丢失一条重复情况
在sqlsever中实现分页常用的是使用以下语句 select top 10 * from [PRD_KPI].[dbo].[student] where id not in ( select top 0 id from [PRD_KPI].[dbo].[student] order by grade desc ) order by grade de...
SQL server 去重复!要主键!要排序!
在SQL里,似乎去重复又要主键还要排序,那是不可能实现的;但是我把不可能,变成了可能;我做了这么久开发这个问题一直困扰着我,今天把它给解决了,分享给大家学习; SELECT  * FROM    ( SELECT   字段                 FROM     表         ) a WHERE   NOT EXISTS ( SELECT   1      --not exist...
导入数据时 为避免出现重复数据的Sql语句
insert into tableName select  top 1 '刘婷婷1',18 where not exists (select 1 from tableName  where Age = 18 and Name = '刘婷婷1');   inset into 表名 select top 1 (你要插入的数据) not exists(select 1 from 表名 where ...
解决ldap获取数据中的objectGUID乱码问题
声明: 1、解决办法是从一个英文网站找到的,现在找不到了,不是我自己解决的 2、连接ldap的方法,也是从网上拷贝,因为方法是固定和通用的 3、欢迎拍砖和开骂,真的,但是至少骂完后告诉我哪里不对,教小弟几招     前一阵子需要做一个从第三方ldap同步用户到本地系统的功能,本地后台服务是java写的,考虑到数据同步的一致性,使用ldap获取的数据中的的obje
SQL重复记录查询,删除除Id最小值外的重复记录
题目: 找出教师表(Teacher)中姓名(Name)重复的数据,然后删除多余重复记录,只留字段ID最小的那个。 delete from Teacher where Name in (select Name from Teacher group by Name Having Count(*)>1) and ID not in (select Mi...
sql插入数据时,避免插入重复数据
1.往表T_Mid_WaterIndexArea中插入数据    insert into [dbo].[T_Mid_WaterIndexArea](AreaCode,Year,DO,CODMn,BOD5,COD,NH3N,TP,TN,CompositeIndex) select c.AreaCode,c.Year, --c.AreaName, AVG(c.DO) DO,AVG(c.CODM
SQLServer 删除表中的重复数据
create table Student(        ID varchar(10) not null,        Name varchar(10) not null, ); insert into Student values('1', 'zhangs'); insert into Student values('2', 'zhangs'); insert into S
Guid类型与String类型的相互转换与操作
Guid类型与String类型的相互转换与操作 Guid类型与String类型的相互转换与操作 posted @ 2018-08-13 11:03 李华丽 阅读(...) 评论(...) 编辑 收藏 ...
SQL server 等值连接与自然连接,解决自然连接去掉重复列的问题
首先介绍一下SQL中的等值连接与自然连接: 等值连接是从关系R与S的广义笛卡尔积中选取A、B属性相等的那些元组,按照属性相同的行将两(或以上)张表元组匹配连接; 自然连接是特殊的等值连接,要求两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉。 在SQL server中创建如下两个表格,Student表(储存学生信息)、SC表(储存学生成绩); Student: ...
sql生成uuid
sql生成uuid,自己试了一下非常的好用,希望对你们有用
SqlServer 2000 去除完全重复的记录 无主键约束
如果你的情况也是,没有主键约束,导致出现了很多完全一致的记录,这时候如何去重复就比较麻烦了,因为是sqlserver 2000 还没有支持rowid这种东西,坑。 不过,我这里有个法子,挺好用的。 首先给你需要去重的表添加一列,设置为主键 + 自增标识   (我这里取名 tempID) 然后通过sql去掉重复记录: delete from  表名 where 字段1(判
SQL Server中的distinct(不允许重复)
零、码仙励志 如果你不肯付出一时的努力去博取成功,那么你可能就要用一生的耐心去忍受失败 一、建库和建表 create database scort use scort create table emp ( empno int primary key, ename nvarchar(10), comm int, deptno int ) insert into emp(empno,e...
SqlServer怎么删除重复数据
环境描述: 工作中,我们经常会碰到各种各样奇葩的数据库表设计,碰到后当然免不了鄙视或感叹坑爹云云,但是茶余饭后酒过三巡,还是得蛋疼的接着去处理问题,今天就来蛋疼下SqlServer怎么删除重复数据。 栗子如下: ============================================================华丽的分割线=====================
SQL Server 语句删除重复行数据
1、删除重复行数据 delete from 表 where 表.id not in (select max(表.id) from 表 group by 表.列名1,表.列名2 having count(*)>1)   2、去除重复行数据 (1)利用 distinct 关键字过滤重复的行,将查询的结果写入临时表 select distinct * into #temp from my...
SQL Server防止重复插入
SQL Server防止重复插入
使用SQL Server导入数据功能导入Excel之数字编号问题
系统上线伊始,基础数据、历史数据导入会用的比较多。 在SQL Server中提供了导入数据功能,可以将用户提供的Excel数据导入到数据库,然后再通过SQL语句进行数据处理,更新到对应业务表 有些时候这个数据类型还是挺烦人的,两边字段类型不一致,导入数据导入失败。 今天要说的是数字编号字段的。 本来应该是字符型,但是Excel就是把它识别为数值; 虽然Excel中已经右键
Oracle生产固定GUID同时生成随机的GUID
select sys_guid() id, t2.INTERNAL_ID, t3.gmsfhm, t2.hhnbid from gzk_gongan_czrkjbxxb t3 join (select (select sys_guid() from dual) INTERNAL_ID, t1.hhnbid hhnbid from gzk_gongan_czrkj
SQL分页排序的实现与分页数据重复问题
转自:http://www.linuxidc.com/Linux/2011-02/32593p2.htm 在oracle分页查询中,我们采用类似以下所示的公认的比较高效的数据库分页查询语句(Effective Oracle by Design中有描述、众多oracle使用者也做过测试)。 写道 SELECT * FROM ( SELECT A.*, ROWNUM RN FROM...
sql创建触发器,避免死循环
两张用户表,修改其中一张表a的密码字段,另一张表b也同时更新字段。同理的,修改表b的密码字段,另一张表a也同时更新字段。分别为两张表创建触发器,这样就会出现,两个触发器会陷入死循环,处理方法如下: CREATE TABLE [T_users]( [yhbm] [varchar](20) NOT NULL, [pwd] [varchar](20) NULL)CREATE TABLE [dbo]...
怎样用java生成GUID与UUID
两种方式生成guid 与uuid 需要comm log 库/** * @author Administrator * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */import java
难道Guid也会重复???
写了10个线程,每个线程里有一个whil循环循环200次,向数据库里查数据,每条数据有自己的主键都是Guid.NewGuid().ToString();rnrn10个线程一起运行,运行一定时间总会提示约束冲突,调试时发现,产生了重复的Guid,因此插入的时候报错。rnrn难道Guid这么容易重复????这个问题怎么解决?
Oracle生成不重复字符串 sys_guid()与Mysql生成唯一值
 (1)oracle生成不重复字符串 在oracle8i以后提供了一个生成不重复的数据的一个函数sys_guid()一共32位,生成的依据主要是时间和机器码,具有世界唯一性,类似于java中的UUID(都是世界唯一的)。其优点就是生成的字符串是唯一的,但其和UUID有同样的弊端:生成的序列过长并且没有规律不方便记忆。其应用场景:当数据库某字段设置为唯一,则可用次生成(比如主键);获取方式 sele...
C# 用SQL自动记录数据并且查询出某一列有哪些重复数据
C# 用SQL自动记录数据并且查询出某一列有哪些重复数据,本人实际测试能用,欢迎下载使用!