select id = right('0000000000' + cast(cast(rand(checksum(newid()))*1000000000 as int) as varchar),10) from sysobjects
--出来的是字符型. 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
create function f_newid() returns bigint as begin return abs(cast(checksum(newid() )as bigint)) end go
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
试试这个 create function f_newid() returns bigint as begin return abs(cast(checksum(newid() )as bigint)) end go
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
select cast(cast(replace(newid(),'-','')as binary)as bigint)
--int不行,要用bigint
returns bigint
as
begin
return abs(cast(checksum(newid() )as bigint))
end
go
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
create function f_newid()
returns bigint
as
begin
return abs(cast(checksum(newid() )as bigint))
end
go