SQL的NEWID

目录:

newid函数简介

newid函数的用途

双色球选号器

总结newid的用法

小小戒网的小画又来了


newid函数简介

1. newid()函数产生一个全球唯一的标识,该标识是由网卡号、CPU时钟组成。从而保证该函数调用的返回值是唯一的。

2. 该函数的返回值类型为uniqueidentifier类型,该类型必须与newid函数配合使用。


newid函数的用途

正是由于uniqueidentifier的唯一性,我们通常用uniqueidentifier类型作为表的主键类型,通过newid函数为该类型的字段新增或者更新值。

举例:

create table test

(

id uniqueidentifier primary key,

name varchar(20)

)

新增的方式为:insert into test values ( newid() , '张三丰' )


双色球选号器

我们抛开主键的问题暂时先不讨论,其实newid()配合order by和top关键字还可以实现随机取记录。

我们下面就利用这个好玩的用法来做一个双色球选号器。

我们来普及一下双色球的知识,就是随机从16个蓝色球里面选择一个,随机从33个红色球里面选择6个,如果您购买的这1个蓝球和6个红球正好福彩中心随机摇出来的一样,那么,恭喜您,中大奖了,发大财了,从此走上人生疯癫啦。

先准备一张表,里面有两列,一列代表球的号码,另外一列代表是蓝色还是红色球。

create table TBLLottery

(

number int,

type char(2)

)

将16个蓝色球和33个红色球信息新增到TBLLottery表中。

insert into TBLLottery values(1,'蓝')

insert into TBLLottery values(2,'蓝')

insert into TBLLottery values(3,'蓝')

insert into TBLLottery values(4,'蓝')

insert into TBLLottery values(5,'蓝')

insert into TBLLottery values(6,'蓝')

insert into TBLLottery values(7,'蓝')

insert into TBLLottery values(8,'蓝')

insert into TBLLottery values(9,'蓝')

insert into TBLLottery values(10,'蓝')

insert into TBLLottery values(11,'蓝')

insert into TBLLottery values(12,'蓝')

insert into TBLLottery values(13,'蓝')

insert into TBLLottery values(14,'蓝')

insert into TBLLottery values(15,'蓝')

insert into TBLLottery values(16,'蓝')

insert into TBLLottery values(1,'红')

insert into TBLLottery values(2,'红')

insert into TBLLottery values(3,'红')

insert into TBLLottery values(4,'红')

insert into TBLLottery values(5,'红')

insert into TBLLottery values(6,'红')

insert into TBLLottery values(7,'红')

insert into TBLLottery values(8,'红')

insert into TBLLottery values(9,'红')

insert into TBLLottery values(10,'红')

insert into TBLLottery values(11,'红')

insert into TBLLottery values(12,'红')

insert into TBLLottery values(13,'红')

insert into TBLLottery values(14,'红')

insert into TBLLottery values(15,'红')

insert into TBLLottery values(16,'红')

insert into TBLLottery values(17,'红')

insert into TBLLottery values(18,'红')

insert into TBLLottery values(19,'红')

insert into TBLLottery values(20,'红')

insert into TBLLottery values(21,'红')

insert into TBLLottery values(22,'红')

insert into TBLLottery values(23,'红')

insert into TBLLottery values(24,'红')

insert into TBLLottery values(25,'红')

insert into TBLLottery values(26,'红')

insert into TBLLottery values(27,'红')

insert into TBLLottery values(28,'红')

insert into TBLLottery values(29,'红')

insert into TBLLottery values(30,'红')

insert into TBLLottery values(31,'红')

insert into TBLLottery values(32,'红')

insert into TBLLottery values(33,'红')

随机取一个蓝色的球

select top 1 * from TBLLottery where type='蓝' order by newid()

随机取六个红色的球

select top 6 * from TBLLottery where type='红' order by newid()

大家可以自己执行一下上述结果,记住第一次运行的结果一定要买哦,极有可能中大奖,走向人生疯癫的。


总结newid的用法

1. 用newid函数为uniqueidentifier类型的字段生成值,我们可以将主键设计成uniqueidentifier类型。

2. 可以利用order by newid()与top子句配合,实现在记录集中获取N条随机记录

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值