select newid() --GUID号行不行?
解决方案 »
- SQL把一个表中的记录插入到另外一个表中,并且某个列根据另外一个表的某列最大值加1
- 多表最新记录
- 请大家帮帮忙!一个查询问题
- 一对多关系中能否不要用主键为索引
- 求一个SQL语句,将是非值转换成具体字符!
- 求救:为什么我还原数据库时提示“必须以单用户模式 RESTORE DATABASE
- 查询货品条码相似度为80%以上的店铺,求大虾指点。
- 用dts将paradox导入到sqlserver的问题
- 如何把表内所有字段的null值替换为空值~~就是不是null而是空~~~
- 简单的语句,奇怪的问题
- transaction (process id 56)was deadlocked on (lock)。。。。。。
- sp_recompile 的作用是社么谁能简要的介绍一下
--解决思路:
--把两个数据范围的值,循环找出来
--再从数据中newid()随机取出来,然后把取了的数据,踢出去,循环到,所有数据都取完!
select functionXXX('开始数','结束数','其他参数')
(
id bigint
)insert into yourtb
select 8880987654321 union all
select 8880987654322create function f_getnumber(@i bigint,@j bigint)
returns bigint
as
begin
while (@i<=@j)
begin
if not exists(select 1 from yourtb where id=@i)
return @i
else
set @i=@i+1
end
return @j
end
goselect dbo.f_getnumber(8880987654321,8880987654388)------------------
8880987654323(所影响的行数为 1 行)
不过要是我多加一个参数 @c 作为查询条件的话,就出不来,不知道为啥 if not exists(select 1 from yourtb where id=@i)
修改为
if not exists(select 1 from yourtb where id=@i and xx=@c)