sql 语句实现表内字段自动生成6位数的字符串,且六位数各不相同,请问如何实现。
4个回答
展开全部
-------
-------创建函数,然后通过函数来更新
create view getRandView
as
select substring(cast(rand() as char(10)),3,6) rnt
go
create function getRand()
returns char(6)
AS
begin
declare @r char(6)
select @r=rnt from getRandView
return @r
end
go
update mytb
set newstring=dbo.getRand()
-------创建函数,然后通过函数来更新
create view getRandView
as
select substring(cast(rand() as char(10)),3,6) rnt
go
create function getRand()
returns char(6)
AS
begin
declare @r char(6)
select @r=rnt from getRandView
return @r
end
go
update mytb
set newstring=dbo.getRand()
展开全部
你要是让在每次添加记录的时候,每次有在一个字段添加一个6位数的数字ID,用sql语句设置字段自动递增属性就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以写一个触发器,在定义触发器的过程中,定义生成字段值的特点。触发器的定义语法可以网上搜一下,很容易找到。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Follow the SQL script
-------------------------------------------------
Declare @zdn varchar (10)
,@zdn1 varchar (10)
,@zdn2 varchar (10)
,@zdn3 varchar (10)
,@zdn4 varchar (10)
,@zdn5 varchar (10)
,@zdn6 varchar (10)
set @zdn1= (select floor(rand()* 10))
LABEL2:
set @zdn2= (select floor(rand()* 10))
IF @zdn2 = @zdn1
GOTO LABEL2
LABEL3:
set @zdn3= (select floor(rand()* 10))
IF @zdn3 = @zdn2 OR @zdn3 = @zdn1
GOTO LABEL3
LABEL4:
set @zdn4= (select floor(rand()* 10))
IF @zdn4 = @zdn3 OR @zdn4 = @zdn2 OR @zdn4 = @zdn1
GOTO LABEL4
LABEL5:
set @zdn5= (select floor(rand()* 10))
IF @zdn5 = @zdn4 OR @zdn5 = @zdn3 OR @zdn5 = @zdn2 OR @zdn5 = @zdn1
GOTO LABEL5
LABEL6:
set @zdn6= (select floor(rand()* 10))
IF @zdn6 = @zdn5 OR @zdn6 = @zdn4 OR @zdn6 = @zdn3 OR @zdn6 = @zdn2 OR @zdn6 = @zdn1
GOTO LABEL6
set @zdn=@zdn1+@zdn2+@zdn3+@zdn4+@zdn5+@zdn6
begin
select @zdn as Result
end
--------------------------------------------------
如果有问题请和我联系。
Kevin
-------------------------------------------------
Declare @zdn varchar (10)
,@zdn1 varchar (10)
,@zdn2 varchar (10)
,@zdn3 varchar (10)
,@zdn4 varchar (10)
,@zdn5 varchar (10)
,@zdn6 varchar (10)
set @zdn1= (select floor(rand()* 10))
LABEL2:
set @zdn2= (select floor(rand()* 10))
IF @zdn2 = @zdn1
GOTO LABEL2
LABEL3:
set @zdn3= (select floor(rand()* 10))
IF @zdn3 = @zdn2 OR @zdn3 = @zdn1
GOTO LABEL3
LABEL4:
set @zdn4= (select floor(rand()* 10))
IF @zdn4 = @zdn3 OR @zdn4 = @zdn2 OR @zdn4 = @zdn1
GOTO LABEL4
LABEL5:
set @zdn5= (select floor(rand()* 10))
IF @zdn5 = @zdn4 OR @zdn5 = @zdn3 OR @zdn5 = @zdn2 OR @zdn5 = @zdn1
GOTO LABEL5
LABEL6:
set @zdn6= (select floor(rand()* 10))
IF @zdn6 = @zdn5 OR @zdn6 = @zdn4 OR @zdn6 = @zdn3 OR @zdn6 = @zdn2 OR @zdn6 = @zdn1
GOTO LABEL6
set @zdn=@zdn1+@zdn2+@zdn3+@zdn4+@zdn5+@zdn6
begin
select @zdn as Result
end
--------------------------------------------------
如果有问题请和我联系。
Kevin
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询