随机生成唯一的五位数
我想建一个表,然后主键是随机生成的一个唯一的5位数,0不能做首位,应该怎么做啊
[解决办法]
主键随机生成的5位数? 那要是已存在表中,那咋办? 没听说过这么弄的.
只听说过随机生成的uniqueidentifier 作为主键的,其他类型没听说过.
[解决办法]
建议楼主还是不要用随机数做主键了。
与其这样,还不如用一个自增主键 或者用uniqueidentifier
[解决办法]
- SQL code
CREATE TABLE t1( id INT DEFAULT LEFT(REPLACE(ABS(CHECKSUM(NEWID())),0,''),5), name VARCHAR(20), sex VARCHAR(2))INSERT INTO t1 (name,sex)SELECT '张三','男' UNION ALLSELECT '李四','男' UNION ALLSELECT '马娘娘','女'SELECT * FROM t1---------------------------id name sex21168 张三 男14723 李四 男26245 马娘娘 女
[解决办法]
建议用identity或是guid 类型。
随机五位数,还得保证不重复,完全没有必要。
[解决办法]
- SQL code
with t as (select 11110 as id union select 11121 )select top 1 id from (select top 99999 row_number()over(order by a.name) as id from master..spt_values a ,master..spt_values b) twhere id>10000and id not in (select id from t)order by newid()
[解决办法]
楼主,随机生成的五位数作主键是不科学的啊!因为会有重复,还不如用序列,或者用伪列,完全满足楼主。