sql 语句实现表内字段自动生成6位数的字符串,且六位数各不相同,请问如何实现。

 我来答
yaj52125
2010-09-21 · TA获得超过404个赞
知道小有建树答主
回答量:450
采纳率:100%
帮助的人:497万
展开全部
-------
-------创建函数,然后通过函数来更新
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()
典榴格C
2010-09-21 · TA获得超过1631个赞
知道小有建树答主
回答量:604
采纳率:0%
帮助的人:981万
展开全部
你要是让在每次添加记录的时候,每次有在一个字段添加一个6位数的数字ID,用sql语句设置字段自动递增属性就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
happyldpldp
2010-09-21 · TA获得超过227个赞
知道答主
回答量:17
采纳率:0%
帮助的人:20.4万
展开全部
可以写一个触发器,在定义触发器的过程中,定义生成字段值的特点。触发器的定义语法可以网上搜一下,很容易找到。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zdn26used
2010-09-21 · TA获得超过136个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:106万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式