如何写一个返回值是int数据类型的newid()函数

magnetmoon 2008-07-11 11:53:15
如何写一个返回值是int数据类型的newid()函数
能否写一个函数,就象限newid()一样,只是返回的数据类型是int型的,
...全文
163 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
magnetmoon 2008-07-12
  • 打赏
  • 举报
回复
上面所有的我都试了,还是不行,
用一个20多万笔数据的表测试,还是有重复值,
arrow_gx 2008-07-11
  • 打赏
  • 举报
回复
试试这个
create function f_newid() 
returns bigint
as
begin
return abs(cast(checksum(newid() )as bigint))
end
go
wzy_love_sly 2008-07-11
  • 打赏
  • 举报
回复
create table tb(id int,name varchar(50)) 
insert into tb select 1,'a'
insert into tb select 2,'b'

alter table tb add randnum int

update tb set randnum= abs(checksum(newid()))%100--控制在100以内的随机数

select * from tb
-狙击手- 2008-07-11
  • 打赏
  • 举报
回复
create function f_newid()
returns bigint
as
begin
return abs(cast(checksum(newid() )as bigint))
end
go
viptiger 2008-07-11
  • 打赏
  • 举报
回复

select cast(cast(replace(newid(),'-','')as binary)as bigint)



--int不行,要用bigint
dawugui 2008-07-11
  • 打赏
  • 举报
回复
--出来的是字符型.
select id = right('0000000000' + cast(cast(rand(checksum(newid()))*1000000000 as int) as varchar),10) from sysobjects

--如果要INT(估计得bigint才行)
select id = cast(left(cast(cast(rand(checksum(newid()))*1000000000 as int) as varchar) + '0000000000',10) as bigint) from sysobjects
dawugui 2008-07-11
  • 打赏
  • 举报
回复
select id = right('0000000000' + cast(cast(rand(checksum(newid()))*1000000000 as int) as varchar),10) from sysobjects
viptiger 2008-07-11
  • 打赏
  • 举报
回复
select cast(cast(replace(newid(),'-','')as binary)as int)

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧